僅備份 MDF 檔案(無 LDF)時,恢復難度較高。本文提供從簡單到進階的完整恢復流程,含企業管理員與 T-SQL 兩種操作方式。
-- 卸離
EXEC sp_detach_db 'DBName'
GO
-- 附加(雙檔案)
EXEC sp_attach_db 'DBName', '路徑\Data.mdf', '路徑\Log.ldf'
GO
-- 或單一檔案附加(自動重建記錄檔)
EXEC sp_attach_single_file_db 'DBName', '路徑\Data.mdf'
GO
在 SSMS 或企業管理員建立同名資料庫(如 test),記下檔案路徑。
test_log.ldftest_data.mdf 覆蓋新建的 test_data.mdf此時資料庫狀態會顯示「置疑」。
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', '路徑\test_log.ldf')
GO
⚠️ 若報錯「無法排他鎖定」,關閉 SSMS 物件瀏覽器或其他連線後重試。
成功訊息:警告: 資料庫 'test' 的記錄已重建。已失去交易的一致性...
DBCC CHECKDB('test')
GO
EXEC sp_dboption 'test', 'dbo use only', 'false'
GO
EXEC sp_configure 'allow updates', 0
RECONFIGURE WITH OVERRIDE
GO
sp_attach_single_file_db 適用於同伺服器、剛卸離的資料庫DBCC CHECKDB 深度掃描