Jei duomenų bazė yra tik skaitoma, galite lengvai nustatyti būseną iš sys.databases arba iš SSMS. Gerai žinomas faktas yra tai, kad jūs negalite atnaujinti duomenų tik skaitomoje duomenų bazėje. Šiame straipsnyje mes sužinosime, kaip tai pašalinti ir išspręsti.
Du variantai
Galime naudoti arba SQL Server „Management Studio“, ty SSMS arba T-SQL scenarijus, skirtas konvertuoti tik skaitomą duomenų bazę į skaitymo ir rašymo duomenų bazę. Norėdami geriau suprasti šias parinktis, leiskite mums
- Sukurkite duomenų bazę
- Sukurkite jame lenteles
- Pridėkite įrašus į lentelę
- Padarykite duomenų bazę kaip tik skaitomą
- Pabandykite įtraukti įrašus į tą pačią lentelę
- Peržiūrėkite klaidos pranešimą
- Konvertuokite duomenų bazę atgal į skaitymo-rašymo režimą
Paruoškite duomenų bazę
Iš jūsų SQL Server valdymo studija, prisijunkite prie savo SQL server, dešiniuoju pelės mygtuku spustelėkite mazgą „Duomenų bazė“ ir pasirinkite parinktį „Nauja duomenų bazė“. Įvedę duomenų bazės pavadinimą paspauskite Gerai. Taip pat galite naudoti T-SQL scenarijų, kaip parodyta toliau pateiktame pavyzdyje:
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
Sukurkite lentelę iš SSMS, pasirinkdami duomenų bazę, dešiniuoju pelės mygtuku spustelėkite mazgą „Lentelės“, tada nukreipkite žymiklį į „Naujas“ ir spustelėkite parinktį „Lentelė…“. Įveskite stulpelio pavadinimą ir duomenų tipus, tada išsaugokite lentelės pavadinimu. Norėdami sukurti lentelę, galite naudoti toliau pateiktą užklausą:
USE [DataNumen] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Table1]( [Col1] [nchar](10) NULL ) ON [PRIMARY] GO
Įtraukite įrašus į lentelę naudodami šią užklausą:
Insert into [dbo].[Table1] values ('Testvalue')
The result window of SSMS will show the following message: (1 row(s) affected)
Naudojant SQL Server „Management Studio“, dešiniuoju pelės mygtuku spustelėkite duomenų bazę ir pasirinkite parinktį „Ypatybės“. Duomenų bazės ypatybių puslapyje, skiltyje „Parinktys“, nustatykite parinktį „Tik skaitoma duomenų bazė“ iš „Tiesa“ į „False“. Taip pat galite perjungti duomenų bazę į tik skaitymą naudodami TSQL scenarijų, kaip parodyta toliau:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_ONLY WITH NO_WAIT GO
Galite matyti, kad dabar SSMS šalia duomenų bazės pavadinimo bus rodoma būsena „Tik skaitoma“.
Dabar pabandykime į lentelę įterpti naują įrašą.
Insert into [dbo].[Table1] values ('Testvalue2')
Rezultatų lange pasirodys toks klaidos pranešimas.
Msg 3906, Level 16, State 1, Line 12 Failed to update database "DataNumen" because the database is read-only.
Grąžinkite duomenų bazės būseną į skaitymą ir rašymą naudodami duomenų bazės ypatybių puslapį ir nustatykite parinktį iš „Duomenų bazės tik skaitymas“ iš „False“ į „True“ arba vykdykite šį scenarijų:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_WRITE WITH NO_WAIT GO
Dabar, kai bandote pridėti įrašą, pasirodo klaidos pranešimas „Nepavyko atnaujinti duomenų bazės“DataNumen"nes duomenų bazė yra tik skaitoma" išnyks. Visi žinome, kad duomenų bazės atsarginės kopijos mums padeda nustatyti SQL Server duomenų bazės. Tačiau tik skaitomos duomenų bazės atsarginė kopija atkurs duomenų bazę tik skaitymo režimu, o ne skaitymo ir rašymo režimu.
Autoriaus įvadas:
Neilas Varley yra duomenų atkūrimo ekspertas DataNumen, Inc., kuri yra pasaulyje duomenų atkūrimo technologijų lyderė, įskaitant Outlook atkūrimas ir Excel atkūrimo programinės įrangos produktai. Norėdami gauti daugiau informacijos, apsilankykite WWW.datanumen.com