2 rješenja za ažuriranje baze podataka samo za čitanje SQL Server

Podijeli sada:

Ako je baza podataka samo za čitanje, lako možete identificirati status iz sys.databases ili iz SSMS-a. Dobro poznata činjenica je da ne možete ažurirati podatke u bazi podataka samo za čitanje. U ovom ćemo članku naučiti kako riješiti problem i riješiti ga.

Dvije mogućnosti

Ažurirajte bazu podataka samo za čitanje u SQL ServerMožemo koristiti ili SQL Server Management Studio, tj. SSMS ili T-SQL skripta za pretvaranje baze podataka samo za čitanje u bazu podataka za čitanje i pisanje. Da bismo bolje razumjeli ove opcije, dopustite nam

  1. Napravite bazu podataka
  2. Napravite tablice unutar njega
  3. Dodajte zapise u tablicu
  4. Učinite bazu podataka samo za čitanje
  5. Pokušajte dodati zapise u istu tablicu
  6. Pregledajte poruku o pogrešci
  7. Pretvorite bazu podataka natrag u način čitanja i pisanja

Pripremite bazu podataka

Od tvojeg SQL Server management studio, povežite se sa svojim SQL server, desnom tipkom miša kliknite čvor “Baza podataka” i zatim odaberite opciju “Nova baza podataka”. Pritisnite OK nakon što upišete naziv baze podataka. Također možete koristiti T-SQL skriptu kao što je prikazano u primjeru ispod:

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

Napravite tablicu iz SSMS-a odabirom baze podataka, desnom tipkom miša kliknite na čvor “Tablice” i zatim pokažite na “Novo” i kliknite opciju “Tablica…”. Unesite naziv stupca i tipove podataka, a zatim spremite s nazivom tablice. Za izradu tablice možete upotrijebiti upit u nastavku:

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

Dodajte zapise u tablicu pomoću sljedećeg upita:

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

Korištenje SQL Server Management Studio, desnom tipkom miša kliknite bazu podataka i zatim odaberite opciju “Svojstva”. Na stranici svojstava baze podataka, pod “Opcije”, postavite opciju “Baza podataka samo za čitanje” s “True” na “False”. Također možete prebaciti bazu podataka samo za čitanje pomoću TSQL skripte kao što je prikazano u nastavku:

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

Mogli ste vidjeti da će SSMS sada prikazati status "Samo za čitanje" u blizini naziva baze podataka.

Prikaži status Samo za čitanje

Sada pokušajmo umetnuti novi zapis u tablicu.

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

U prozoru rezultata pojavit će se sljedeća poruka o pogrešci.

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

Vratite status baze podataka na čitanje-pisanje pomoću stranice Svojstva baze podataka i postavite opciju s “Baza podataka samo za čitanje” s “Netočno” na “Istinito” ili izvršite sljedeću skriptu:

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

Sada, kada pokušate dodati zapis, prikazuje se poruka o pogrešci "Neuspješno ažuriranje baze podataka"DataNumen"jer je baza podataka samo za čitanje" će nestati. Svi znamo da nam sigurnosne kopije baze podataka pomažu popraviti SQL Server baze podataka. Međutim, sigurnosna kopija baze podataka samo za čitanje obnovit će bazu podataka u načinu rada samo za čitanje, a ne u načinu čitanja i pisanja.

Uvod za autora:

Neil Varley je stručnjak za oporavak podataka u DataNumen, Inc., koji je svjetski lider u tehnologijama za oporavak podataka, uključujući Outlook oporavak i excel softverski proizvodi za oporavak. Za više informacija posjetite www.datanumen.com

Podijeli sada:

Komentari su zatvoreni.