2 Obejścia dotyczące aktualizacji bazy danych tylko do odczytu w programie SQL Server

Podziel się teraz:

Jeśli baza danych jest tylko do odczytu, można łatwo zidentyfikować jej stan w sys.databases lub SSMS. Powszechnie wiadomo, że nie można aktualizować danych w bazie danych tylko do odczytu. W tym artykule dowiemy się, jak rozwiązać ten problem i naprawić.

Dwie opcje

Zaktualizuj bazę danych tylko do odczytu w SQL ServerMożemy albo użyć SQL Server Management Studio, tj. Skrypt SSMS lub T-SQL do konwersji bazy danych tylko do odczytu na bazę danych do odczytu i zapisu. Aby lepiej zrozumieć te opcje, pozwól nam

  1. Utwórz bazę danych
  2. Utwórz w nim tabele
  3. Dodaj rekordy do tabeli
  4. Ustaw bazę danych jako tylko do odczytu
  5. Spróbuj dodać rekordy do tej samej tabeli
  6. Przejrzyj komunikat o błędzie
  7. Przekonwertuj bazę danych z powrotem na tryb do odczytu i zapisu

Przygotuj bazę danych

Od twojego SQL Server studio zarządzania, połącz się ze swoim SQL server, kliknij prawym przyciskiem węzeł „Baza danych”, a następnie wybierz opcję „Nowa baza danych”. Naciśnij Ok po wpisaniu nazwy bazy danych. Możesz również użyć skryptu T-SQL, jak pokazano w poniższym przykładzie:

CREATE DATABASE [DataNumen]
 CONTAINMENT = NONE
 ON PRIMARY 
( NAME = N'DataNumen', FILENAME = N'E:\Program Files\MSSQL12.MSSQLSERVER\MSSQL\DATA\DataNumen.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'DataNumen_log', FILENAME = N'E:\Program Files\MSSQL12.MSSQLSERVER\MSSQL\DATA\DataNumen_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO

Utwórz tabelę z SSMS, wybierając bazę danych, kliknij prawym przyciskiem myszy węzeł „Tabele”, a następnie wskaż „Nowy” i kliknij opcję „Tabela…”. Wprowadź nazwę kolumny i typy danych, a następnie zapisz pod nazwą tabeli. Możesz użyć poniższego zapytania, aby utworzyć tabelę:

USE [DataNumen]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table1](
 [Col1] [nchar](10) NULL
) ON [PRIMARY]
GO

Dodaj rekordy do tabeli, używając następującego zapytania:

Insert into [dbo].[Table1] values ('Testvalue')
The result window of SSMS will show the following message:
 
(1 row(s) affected)

Korzystanie z SQL Server Management Studio, kliknij prawym przyciskiem myszy bazę danych, a następnie wybierz opcję „Właściwości”. Na stronie Właściwości bazy danych w sekcji „Opcje” ustaw opcję „Tylko do odczytu bazy danych” z „Prawda” na „Fałsz”. Możesz także przełączyć bazę danych na tylko do odczytu za pomocą skryptu TSQL, jak pokazano poniżej:

USE [master]
GO
ALTER DATABASE [DataNumen] SET READ_ONLY WITH NO_WAIT
GO

Widać było, że SSMS teraz pokaże stan „Tylko do odczytu” obok nazwy bazy danych.

Pokaż stan tylko do odczytu

Teraz spróbujmy wstawić nowy rekord do tabeli.

Insert into [dbo].[Table1] values ('Testvalue2')

W oknie wyników pojawi się następujący komunikat o błędzie.

Msg 3906, Level 16, State 1, Line 12
Failed to update database "DataNumen" because the database is read-only.

Przywróć stan bazy danych do odczytu i zapisu na stronie Właściwości bazy danych i ustaw opcję „Tylko do odczytu bazy danych” z „Fałsz” na „Prawda” lub wykonaj następujący skrypt:

USE [master]
GO
ALTER DATABASE [DataNumen] SET READ_WRITE WITH NO_WAIT
GO

Teraz podczas próby dodania rekordu pojawia się komunikat o błędzie „Nie udało się zaktualizować bazy danych”DataNumen„Ponieważ baza danych jest tylko do odczytu” zniknie. Wszyscy wiemy, że kopie zapasowe baz danych nam w tym pomagają stały SQL Server bazy danych. Jednak kopia zapasowa bazy danych tylko do odczytu przywróci bazę danych w trybie tylko do odczytu, a nie w trybie do odczytu i zapisu.

Wprowadzenie autora:

Neil Varley jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym Odzyskiwanie programu Outlook i doskonałe oprogramowanie do odzyskiwania. po więcej informacji odwiedź www.datanumen.com

Podziel się teraz:

Możliwość dodawania komentarzy nie jest dostępna.