sp_attach_db 附加資料檔 (MDF/LDF) 至新執行個體。master) 至原路徑啟動服務 (不建議,sp_attach_db 較乾淨)。崩潰時未完成交易與髒頁未寫入磁碟,sp_attach_db 會失敗。依賴 DBA 災難復原計畫:還原完整備份 → 差異備份 → 記錄備份 → 若作用中記錄檔可讀,還原至崩潰前狀態。
EXEC sp_attach_single_file_db @dbname='DBName', @physname='Path\DBName.mdf'
若資料庫剛好執行過 CHECKPOINT,可能成功。
USE master; GO
EXEC sp_configure 'allow updates', 1; RECONFIGURE WITH OVERRIDE; GO
UPDATE sysdatabases SET status = 32768 WHERE name = 'DBName'; GO
DBCC CHECKDB:
EXEC sp_dboption 'DBName', 'single user', 'true';
DBCC CHECKDB('DBName');
CHECKDB 回報錯誤,依序嘗試修復選項 (最後可能需 REPAIR_ALLOW_DATA_LOSS)。DBCC CHECKTABLE (從 sysobjects 篩選 IsTable=1)。SELECT INTO 複製資料至新資料表驗證。DBCC DBREINDEX 可協助)。UPDATE sysdatabases SET status = 28 WHERE name = 'DBName'; -- 或使用 sp_resetstatus
EXEC sp_configure 'allow updates', 0; RECONFIGURE WITH OVERRIDE; GO