依據資料庫狀態與備份可用性,恢復手段由優到劣:
RESTORE DATABASE [TestDB]
FROM DISK = N'C:\Backup\TestDB.bak'
WITH REPLACE, STATS = 5; -- 顯示進度
當資料庫引擎癱瘓、無法啟動服務,但 `.mdf`/`.ldf` 檔案完好時:
-- 情況 A:同時擁有 .mdf 與 .ldf
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'C:\Data\pubs.mdf',
@filename2 = N'C:\Data\pubs_log.ldf';
-- 情況 B:僅剩 .mdf(記錄檔遺失/損壞)
EXEC sp_attach_single_file_db @dbname = N'pubs',
@physname = N'C:\Data\pubs.mdf'; -- 自動重建記錄檔,資料庫可能進入唯讀模式
風險提示:`sp_attach_single_file_db` 可能導致資料庫變為「唯讀」或「疑似」狀態,且未提交的交易將丟失。僅作為最後手段。