KB4057087 - 修正:如果檔案路徑包含 SQL Server 2017 中的重複路徑分隔符號,則無法使用 REPLACE 選項還原資料庫

Applies To
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core

症狀

假設您嘗試使用 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 2017 累積更新 4

關於 SQL Server 的累積更新:

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:

適用於 SQL Server 2017 的最新累積更新

其他資訊

關於路徑,它不是備份位置的路徑,而是備份標頭中的檔案路徑,只能使用還原標頭查看。 如需詳細資訊,請參閱 RESTORE 陳述式 - HEADERONLY (Transact-SQL) 。 例如:


RESTORE HEADERONLY

FROM DISK = N'FilePath\FileName.bak'

WITH NOUNLOAD;

GO

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

了解 Microsoft 用來說明軟體更新的術語。