CREATE DATABASE Test,記錄邏輯檔名 (通常為 `Test_Data`、`Test_Log`)。USE master; GO
EXEC sp_configure 'allow updates', 1; RECONFIGURE WITH OVERRIDE; GO
UPDATE sysdatabases SET status = -32768 WHERE dbid = DB_ID('Test'); GO
此時可在企業管理員看到系統表,但使用者表不可見。
DBCC REBUILD_LOG('Test', 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Test_Log.ldf'); GO
若報錯 5030 (無法獨佔鎖定),關閉所有連線 (含企業管理員瀏覽該庫) 後重試。
DBCC CHECKDB('Test'); GO
EXEC sp_dboption 'Test', 'dbo use only', 'false'; GO
EXEC sp_configure 'allow updates', 0; RECONFIGURE WITH OVERRIDE; GO
-- 1. 緊急模式
ALTER DATABASE Test SET EMERGENCY; GO
-- 2. 單一使用者模式修復
ALTER DATABASE Test SET SINGLE_USER; GO
DBCC CHECKDB('Test', REPAIR_ALLOW_DATA_LOSS) WITH TABLOCK; GO
-- 3. 恢復多用戶
ALTER DATABASE Test SET MULTI_USER; GO