當 SQL Server 數據庫標記為「置疑」時,意味著數據庫啟動恢復過程失敗,可能因事務日志損壞、磁盤故障或非正常關機導致。面對這類情況,首要原則是先備份現有數據文件(MDF/LDF),防止修復過程造成數據永久丟失。
以下 T-SQL 腳本將數據庫置於緊急模式、單用戶模式,執行允許數據損失的修復,最後恢復上線:
USE MASTER;
GO
-- 允許直接更新系統表(舊版本需要,新版本通常不再支援)
EXEC sp_configure 'allow updates', 1;
RECONFIGURE WITH OVERRIDE;
GO
-- 1. 設為緊急模式:僅允許 sysadmin 讀取,不啟動恢復
ALTER DATABASE [YourDatabaseName] SET EMERGENCY;
GO
-- 2. 切換至單用戶模式,排除其他連線干擾
EXEC sp_dboption 'YourDatabaseName', 'single user', 'true';
GO
-- 3. 執行修復,REPAIR_ALLOW_DATA_LOSS 可能刪除損壞頁面
DBCC CHECKDB('YourDatabaseName', 'REPAIR_ALLOW_DATA_LOSS');
GO
-- 4. 恢復多用戶、上線狀態
ALTER DATABASE [YourDatabaseName] SET ONLINE;
GO
EXEC sp_dboption 'YourDatabaseName', 'single user', 'false';
GO
-- 5. 關閉系統表更新選項
EXEC sp_configure 'allow updates', 0;
RECONFIGURE WITH OVERRIDE;
GO