SQL Server 資料庫備份除 BACKUP DATABASE 外,亦可直接複製 .mdf (資料檔) 與 .ldf (記錄檔) 檔案。本文涵蓋正常附加、單檔 MDF 緊急修復、DBCC 重建記錄檔完整流程。
-- 方法一:企業管理器 → 右鍵資料庫 → 所有工作 → 附加資料庫 → 選取 .mdf
-- 方法二:T-SQL
EXEC sp_attach_db
@dbname = 'TestDB',
@filename1 = 'C:\Data\TestDB.mdf',
@filename2 = 'C:\Data\TestDB_log.ldf';
-- 僅有 .mdf 但為當前實例產生 (記錄檔會自動重建)
EXEC sp_attach_single_file_db @dbname = 'TestDB', @physname = 'C:\Data\TestDB.mdf';
適用情境:僅備份 .mdf、從其他伺服器複製、LDF 損壞遺失。
CREATE DATABASE TestDB)。TestDB_log.ldf,用備份的 TestDB.mdf 覆蓋新建的 TestDB.mdf。USE master;
EXEC sp_configure 'allow updates', 1;
RECONFIGURE WITH OVERRIDE;
UPDATE sysdatabases SET status = -32768 WHERE dbid = DB_ID('TestDB');
DBCC REBUILD_LOG('TestDB', 'C:\Data\TestDB_log.ldf');
DBCC CHECKDB('TestDB');
EXEC sp_dboption 'TestDB', 'dbo use only', 'false';
EXEC sp_configure 'allow updates', 0;
RECONFIGURE WITH OVERRIDE;
DBCC REBUILD_LOG 失敗 (錯誤 5030)。DBCC CHECKDB 驗證。CREATE DATABASE ... FOR ATTACH_REBUILD_LOG 替代上述手動流程。