執行 sp_attach_db / sp_attach_single_file_db 錯誤 1813:無法開啟新資料庫 'dbname'。CREATE DATABASE 終止。 裝置啟動錯誤。實體檔案名 'd:\SQL Server\mssql\data\dbname_log.ldf' 可能有誤!
原因:僅有 MDF 檔案,LDF 遺失/路徑錯誤/損壞,系統嘗試依 MDF 中記錄的路徑尋找 LDF 失敗。
USE master;
GO
EXEC sp_configure 'allow updates', 1; RECONFIGURE WITH OVERRIDE;
GO
UPDATE sysdatabases SET status = 32768 WHERE name = 'dbname'; -- 設為緊急模式
GO
EXEC sp_dboption 'dbname', 'single user', 'true';
GO
DBCC CHECKDB ('dbname'); -- 檢查一致性
GO
UPDATE sysdatabases SET status = 28 WHERE name = 'dbname'; -- 恢復正常模式
GO
EXEC sp_configure 'allow updates', 0; RECONFIGURE WITH OVERRIDE;
GO
EXEC sp_dboption 'dbname', 'single user', 'false';
GO
⚠️ **僅限簡單復原模式、確認無未提交交易、可接受遺失** 時使用。標準流程優先。
附加資料庫找不到 LDF 是經典場景。**建立同名庫 → 停服務 → 換 MDF → 啟服務 → 緊急模式修復 → 重建遷移**,是保留資料最大化、風險最小化的標準 SOP。切記:修復後**必須重建遷移**,不可長期運行於修復後狀態。