Kung ang isang database ay nabasa lamang, madali mong makikilala ang katayuan mula sa mga sys.database o mula sa SSMS. Ang isang kilalang katotohanan ay hindi ka maaaring mag-update ng data sa isang read-only na database. Sa artikulong ito, matututunan natin kung paano i-troubleshoot at ayusin ito.
Dalawang pagpipilian
Maaari naming gamitin ang alinman SQL Server Ibig sabihin ng Management Studio, SSMS o T-SQL script upang mai-convert ang isang read-only na database sa isang basahin na database. Upang mas maunawaan ang mga pagpipiliang ito, hayaan mo kami
- Lumikha ng isang database
- Lumikha ng mga talahanayan sa loob nito
- Magdagdag ng mga talaan sa talahanayan
- Gawin ang database bilang read-only
- Subukang magdagdag ng mga tala sa parehong talahanayan
- Suriin ang mensahe ng error
- I-convert ang database pabalik sa read-write mode
Ihanda ang Database
Mula sa iyong SQL Server management studio, kumonekta sa iyong SQL server, i-right click ang node na "Database" at pagkatapos ay piliin ang pagpipiliang "Bagong Database". Pindutin ang Ok pagkatapos mag-type sa isang pangalan para sa database. Maaari mo ring gamitin ang T-SQL script tulad ng ipinakita sa halimbawa sa ibaba:
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
Lumikha ng isang talahanayan mula sa SSMS sa pamamagitan ng pagpili ng database, mag-right click sa node na "Mga Talahanayan" at pagkatapos ay ituro ang "Bago" at i-click ang pagpipiliang "Talahanayan ...". Ipasok ang pangalan ng Column at mga datatypes at pagkatapos ay i-save gamit ang isang pangalan ng talahanayan. Maaari mong gamitin ang query sa ibaba upang lumikha ng isang talahanayan:
USE [DataNumen] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Table1]( [Col1] [nchar](10) NULL ) ON [PRIMARY] GO
Magdagdag ng mga talaan sa talahanayan gamit ang sumusunod na query:
Insert into [dbo].[Table1] values ('Testvalue')
The result window of SSMS will show the following message: (1 row(s) affected)
paggamit SQL Server Pamamahala ng Studio, i-right click ang database at pagkatapos ay piliin ang pagpipiliang "Properties". Sa pahina ng mga pag-aari ng Database, sa ilalim ng "Mga Pagpipilian", itakda ang pagpipiliang "Basahing Basahin-Lamang" mula sa "Totoo" hanggang sa "Maling". Maaari mo ring ilipat ang database sa read-only gamit ang TSQL script tulad ng ipinakita sa ibaba:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_ONLY WITH NO_WAIT GO
Maaari mong makita na ipapakita ng SSMS ngayon ang katayuang "Read-only" na malapit sa pangalan ng database.
Ngayon, subukan nating maglagay ng bagong tala sa talahanayan.
Insert into [dbo].[Table1] values ('Testvalue2')
Ang sumusunod na mensahe ng error ay lilitaw sa window ng resulta.
Msg 3906, Level 16, State 1, Line 12 Failed to update database "DataNumen" because the database is read-only.
Ibalik ang katayuan ng database upang basahin ang pagsulat gamit ang pahina ng Mga Katangian ng Database at itakda ang pagpipilian mula sa "Basahin ang Basahin Lamang" mula sa "Maling" sa "Totoo" o ipatupad ang sumusunod na script:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_WRITE WITH NO_WAIT GO
Ngayon, kapag sinubukan mong magdagdag ng isang talaan, ang mensahe ng error na "Nabigong i-update ang database"DataNumen"Dahil ang database ay read-only" ay mawawala. Alam nating lahat na ang mga backup ng database ay makakatulong sa amin na ayusin SQL Server mga database Gayunpaman, ang isang pag-backup ng read-only database ay magbabalik ng isang database sa read-only mode at hindi sa read-write mode.
Panimula ng May-akda:
Si Neil Varley ay isang dalubhasa sa pagbawi ng data sa DataNumen, Inc., na pinuno ng mundo sa mga teknolohiya sa pagbawi ng data, kasama ang Paggaling ng Outlook at excel mga produkto ng pagbawi ng software. Para sa karagdagang impormasyon pagbisita www.datanumen. Sa