Nëse një bazë të dhënash është vetëm për lexim, mund ta identifikoni lehtësisht statusin nga bazat e të dhënave sys. ose nga SSMS. Një fakt i njohur është se nuk mund të përditësoni të dhënat në një bazë të dhënash vetëm për lexim. Në këtë artikull, ne do të mësojmë se si ta zgjidhim dhe rregullojmë këtë.
Dy opsione
Ne mund të përdorim ose SQL Server Management Studio dmth., skript SSMS ose T-SQL për të kthyer një bazë të dhënash vetëm për lexim në një bazë të dhënash lexim-shkruaj. Për t'i kuptuar më mirë këto opsione, na lejoni
- Krijo një bazë të dhënash
- Krijo tabela brenda saj
- Shtoni të dhënat në tabelë
- Bëjeni bazën e të dhënave si vetëm për lexim
- Provoni të shtoni të dhëna në të njëjtën tabelë
- Rishikoni mesazhin e gabimit
- Kthejeni bazën e të dhënave përsëri në modalitetin lexim-shkrim
Përgatitja e bazës së të dhënave
Nga tuajat SQL Server studio menaxhimi, lidheni me tuajin SQL server, kliko me të djathtën në nyjen “Baza e të dhënave” dhe më pas zgjidh opsionin “Baza e re e të dhënave”. Shtypni Ok pasi të shkruani një emër për bazën e të dhënave. Ju gjithashtu mund të përdorni skriptin T-SQL siç tregohet në shembullin më poshtë:
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
Krijoni një tabelë nga SSMS duke zgjedhur bazën e të dhënave, klikoni me të djathtën në nyjen “Tables” dhe më pas tregoni “New” dhe klikoni opsionin “Tabela…”. Futni emrin e kolonës dhe llojet e të dhënave dhe më pas ruajeni me një emër tabele. Ju mund të përdorni pyetjen e mëposhtme për të krijuar një 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
Shtoni të dhënat në tabelë duke përdorur pyetjen e mëposhtme:
Insert into [dbo].[Table1] values ('Testvalue')
The result window of SSMS will show the following message: (1 row(s) affected)
Përdorim SQL Server Management Studio, kliko me të djathtën në bazën e të dhënave dhe më pas zgjidhni opsionin "Properties". Në faqen e vetive të bazës së të dhënave, nën "Opsionet", vendosni opsionin "Vetëm për lexim të bazës së të dhënave" nga "E vërtetë" në "E gabuar". Ju gjithashtu mund ta ndërroni bazën e të dhënave në vetëm për lexim duke përdorur skriptin TSQL siç tregohet më poshtë:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_ONLY WITH NO_WAIT GO
Mund të shihni se SSMS tani do të shfaqte statusin "Vetëm për lexim" pranë emrit të bazës së të dhënave.
Tani, le të përpiqemi të fusim një rekord të ri në tabelë.
Insert into [dbo].[Table1] values ('Testvalue2')
Mesazhi i mëposhtëm i gabimit do të shfaqet në dritaren e rezultatit.
Msg 3906, Level 16, State 1, Line 12 Failed to update database "DataNumen" because the database is read-only.
Kthejeni statusin e bazës së të dhënave për të lexuar-shkruar duke përdorur faqen Vetitë e bazës së të dhënave dhe vendosni opsionin nga "Baza e të dhënave vetëm për lexim" nga "False" në "E vërtetë" ose ekzekutoni skriptin e mëposhtëm:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_WRITE WITH NO_WAIT GO
Tani, kur përpiqeni të shtoni një rekord, mesazhi i gabimit "Dështoi të përditësojë bazën e të dhënave"DataNumen"Sepse baza e të dhënave është vetëm për lexim" do të zhduket. Të gjithë e dimë se kopjet rezervë të bazës së të dhënave na ndihmojnë fix SQL Server bazat e të dhënave. Megjithatë, një kopje rezervë e bazës së të dhënave vetëm për lexim do të rivendosë një bazë të dhënash në modalitetin vetëm për lexim dhe jo në modalitetin lexim-shkrim.
Hyrje e autorit:
Neil Varley është një ekspert i rikuperimit të të dhënave në DataNumen, Inc., e cila është lider botëror në teknologjitë e rikuperimit të të dhënave, duke përfshirë Rimëkëmbja e opinionit dhe produkte softuerike të rimëkëmbjes excel. Për më shumë informacion vizitoni www.datanumen.com