症狀
假設您嘗試使用 SQL Server 2017 中的 REPLACE 選項來還原資料庫。 如果檔案路徑在 CREATE DATABASE 中包含重複的路徑分隔符號,您可能會收到類似下列的錯誤訊息:
注意
- Msg 3634, Level 16, State 1, Line Number, Line Number
- 作業系統傳回錯誤「32 (進程無法存取檔案,因為另一個進程正在使用該檔案。) 」 在 'FilePath\FileName.mdf' 上嘗試 'RestoreContainer::ValidateTargetForCreation'。
- Msg 3156, Level 16, State 8, Line LineNumber
- 檔案 'FileName' 無法還原為 'FilePath\FileName.mdf'。 使用 WITH MOVE 來識別檔案的有效位置。
- Msg 3634, Level 16, State 1, Line Number, Line Number
- 作業系統傳回錯誤「32 (進程無法存取檔案,因為另一個進程正在使用該檔案。) 」 嘗試對 'FilePath\FileName.ldf' 執行 'RestoreContainer::ValidateTargetForCreation' 時。
- Msg 3156, Level 16, State 8, Line LineNumber
- 檔案 'FileName' 無法還原為 'FilePath\FileName.ldf'。 使用 WITH MOVE 來識別檔案的有效位置。
- Msg 3119, Level 16, State 1, Line Number, Msg 3119, Level 16, State 1, Line Number
- 規劃 RESTORE 陳述式時發現問題。 先前的訊息提供詳細資料。
- Msg 3013, Level 16, State 1, Line Number, Msg 3013, Level 16, State 1, Line Number, Msg 3013, Level 16, State 1, Line LineNumber
- 還原資料庫異常終止。
因應措施
當您嘗試使用 REPLACE 選項執行還原時,會收到此錯誤。 您可以刪除現有的資料庫並執行還原,作為因應措施。
解決方式
此問題已在下列 SQL Server 累積更新中修正:
關於 SQL Server 的累積更新:
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:
其他資訊
關於路徑,它不是備份位置的路徑,而是備份標頭中的檔案路徑,只能使用還原標頭查看。 如需詳細資訊,請參閱 RESTORE 陳述式 - HEADERONLY (Transact-SQL) 。 例如:
RESTORE HEADERONLY
FROM DISK = N'FilePath\FileName.bak'
WITH NOUNLOAD;
GO
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
參考資料
了解 Microsoft 用來說明軟體更新的術語。