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

Podijeli sada:

Ako je baza podataka samo za čitanje, status možete lako identificirati 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 članku ćemo naučiti kako to riješiti i popraviti.

Dvije mogućnosti

Ažurirajte bazu podataka samo za čitanje SQL ServerMožemo i jedno i drugo 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, dozvolite nam

  1. Stvorite bazu podataka
  2. Kreirajte tabele unutar njega
  3. Dodajte zapise u tabelu
  4. Neka baza podataka bude samo za čitanje
  5. Pokušajte dodati zapise u istu tabelu
  6. Pregledajte poruku o grešci
  7. Pretvorite bazu podataka natrag u način čitanja-pisanja

Pripremite bazu podataka

Od vašeg SQL Server menadžment studio, povežite se sa svojim SQL server, kliknite desnim tasterom miša na čvor “Baza podataka” i zatim izaberite opciju “Nova baza podataka”. Pritisnite Ok nakon što unesete ime 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

Kreirajte tabelu iz SSMS-a tako što ćete izabrati bazu podataka, kliknuti desnim tasterom miša na čvor „Tabele“, a zatim pokazati na „Novo“ i kliknuti na opciju „Tabela…“. Unesite naziv kolone i tipove podataka, a zatim spremite s imenom tablice. Za kreiranje tabele možete koristiti upit ispod:

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 tabelu koristeći sljedeći upit:

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

korišćenje SQL Server Management Studio, kliknite desnim tasterom miša na bazu podataka, a zatim izaberite opciju “Svojstva”. Na stranici sa svojstvima baze podataka, pod “Opcije”, postavite opciju “Samo za čitanje baze podataka” sa “True” na “False”. Također možete prebaciti bazu podataka na samo čitanje koristeći TSQL skriptu 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 pokazati status “Samo za čitanje” u blizini imena baze podataka.

Prikaži status samo za čitanje

Sada, hajde da pokušamo da ubacimo novi zapis u tabelu.

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

Sljedeća poruka o grešci će se pojaviti u prozoru rezultata.

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-upisivanje koristeći stranicu Svojstva baze podataka i postavite opciju sa “Samo čitanje baze podataka” sa “Netačno” na “True” ili izvršite sljedeću skriptu:

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

Sada, kada pokušate da dodate zapis, pojavljuje se poruka o grešci “Ažuriranje baze podataka nije uspjelo”DataNumen“jer je baza podataka samo za čitanje” će nestati. Svi znamo da nam sigurnosna kopija baze podataka pomaže popraviti SQL Server baze podataka. Međutim, sigurnosna kopija baze podataka samo za čitanje će vratiti bazu podataka u modu samo za čitanje, a ne u načinu čitanja-pisanja.

Uvod za autora:

Neil Varley je stručnjak za oporavak podataka 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.