重裝作業系統導致 C 槽格式化,遺失 SQL Server 2000 資料庫備份,但資料檔(MDF)因空間不足先前存放於其他磁碟而倖免。本文記錄僅憑 MDF 檔案還原資料庫的完整實作流程。
經查詢資料發現 sp_detach_db 與 sp_attach_single_file_db 兩個系統預存程序正是解決此問題的關鍵。實測步驟如下:
robot 的空資料庫。robot_Data.LDF,否則後續附加會失敗。robot 資料庫設為離線狀態。EXEC sp_detach_db @dbname = 'robot'
EXEC sp_attach_single_file_db @dbname = 'robot', @physname = 'E:\WebDemo\robot_Data.MDF'
注意:必須使用系統管理員權限執行,否則會權限不足報錯。
sp_attach_single_file_db 允許僅透過單一 MDF 檔案附加資料庫,SQL Server 會自動重建記錄檔(LDF)。若附加後資料庫標記為「可疑」,請檢查 MDF 檔案是否損毀,或嘗試以 DBCC CHECKDB 修復。此外,SQL Server 2005 及以上版本建議改用 CREATE DATABASE ... FOR ATTACH_REBUILD_LOG 語法,功能更完善。