如果數據庫是只讀的,您可以從 sys.databases 或 SSMS 輕鬆識別狀態。 一個眾所周知的事實是您無法更新只讀數據庫中的數據。 在本文中,我們將學習如何進行故障排除和修復。
兩種選擇
我們可以使用 SQL Server Management Studio,即SSMS或T-SQL腳本,用於將只讀數據庫轉換為讀寫數據庫。 為了更好地了解這些選項,讓我們
- 建立資料庫
- 在其中創建表
- 向表中添加記錄
- 將數據庫設為只讀
- 嘗試將記錄添加到同一張表
- 查看錯誤消息
- 將數據庫轉換回讀寫模式
準備數據庫
從你的 SQL Server 管理工作室,連接到您的 SQL server,右鍵單擊“數據庫”節點,然後選擇“新建數據庫”選項。 輸入數據庫名稱後按確定。 您還可以使用T-SQL腳本,如下例所示:
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
通過選擇數據庫從 SSMS 創建一個表,右鍵單擊節點“表”,然後指向“新建”並單擊選項“表...”。 輸入列名和數據類型,然後用表名保存。 您可以使用下面的查詢來創建表:
USE [DataNumen] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Table1]( [Col1] [nchar](10) NULL ) ON [PRIMARY] GO
使用以下查詢將記錄添加到表中:
Insert into [dbo].[Table1] values ('Testvalue')
The result window of SSMS will show the following message: (1 row(s) affected)
使用 SQL Server Management Studio,右鍵單擊數據庫,然後選擇“屬性”選項。 在“數據庫屬性”頁面上的“選項”下,將選項“數據庫只讀”從“真”設置為“假”。 您還可以使用TSQL腳本將數據庫切換為只讀,如下所示:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_ONLY WITH NO_WAIT GO
您可以看到 SSMS 現在將在數據庫名稱附近顯示“只讀”狀態。
現在,讓我們嘗試在表中插入一條新記錄。
Insert into [dbo].[Table1] values ('Testvalue2')
結果窗口中將出現以下錯誤信息。
Msg 3906, Level 16, State 1, Line 12 Failed to update database "DataNumen" because the database is read-only.
使用數據庫屬性頁面將數據庫狀態恢復為讀寫,並將“數據庫只讀”選項從“假”設置為“真”或執行以下腳本:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_WRITE WITH NO_WAIT GO
現在,當您嘗試添加記錄時,錯誤消息“無法更新數據庫”DataNumen“因為數據庫是只讀的”將消失。 我們都知道數據庫備份可以幫助我們 固定 SQL Server 數據庫。 但是,只讀數據庫的備份將以只讀模式而不是讀寫模式恢復數據庫。
作者簡介:
Neil Varley是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 Outlook恢復 和excel恢復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM