適用情境
- 伺服器故障無法正常備份,僅能從磁碟救出
.mdf 主資料檔。
- 遺失
.ldf 記錄檔,需快速掛載資料庫搶救資料。
操作步驟(以 SSMS 查詢分析器為例)
- 開啟 SSMS,以
sa 或 sysadmin 角色連線伺服器。
- 開啟新查詢視窗,輸入以下 T-SQL 指令:
EXEC sp_attach_single_file_db
@dbname = N'IT2000', -- 目標資料庫名稱
@physname = N'D:\Data\IT2000.mdf'; -- MDF 實體完整路徑
- 點擊 執行,訊息窗格顯示「命令已成功完成」即代表掛載成功。
- 在「物件總管」重新整理,即可看到
IT2000 資料庫已上線。
圖 1:查詢分析器連線對話框
圖 2:查詢編輯視窗
圖 3:輸入指令並執行
原理與注意事項
sp_attach_single_file_db 會自動在 MDF 同目錄建立新的空白記錄檔(LDF),資料庫狀態為 RECOVERY_PENDING 後自動完成復原。
- 未提交的交易將遺失,資料庫可能處於交易一致性狀態,建議掛載後立即執行
DBCC CHECKDB ('IT2000') 驗證完整性。
- 此預存程序在 SQL Server 2005+ 已標記為棄用,新版本請改用
CREATE DATABASE ... FOR ATTACH_REBUILD_LOG。
新版本替代語法
CREATE DATABASE IT2000
ON (FILENAME = N'D:\Data\IT2000.mdf')
FOR ATTACH_REBUILD_LOG;