KB4340837- 修正:當在伺服器上套用熱修正時,該伺服器在拉取訂閱資料庫上有SQL Server資料庫快照,會發生錯誤 3906

套用到
SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症狀

假設你有一個資料庫快照,位於一台運行 Microsoft SQL Server 的伺服器上的拉取訂閱資料庫。 當你在伺服器上套用熱修正時,腳本層級升級失敗,並會收到類似以下錯誤訊息:

注意

約會時間spid_number 執行複製工作安全元資料升級......
日期timespid_number 錯誤:3906,嚴重程度:16,狀態:1。
日期timespid_number 因為資料庫是唯讀,無法更新資料庫「database_name」。
日期timespid_number 誤差:912,嚴重程度:21,狀態:2。
日期timespid_number 資料庫「主」的腳本層級升級失敗,因為升級步驟「msdb110_upgrade.sql」遇到錯誤 3906,狀態 1,嚴重度 16。 這是嚴重的錯誤狀況,可能會干擾正常運作,資料庫將被關閉。 如果錯誤發生在升級「主」資料庫時,整個 SQL Server 實例將無法啟動。 檢查先前的錯誤日誌條目是否有錯誤,採取適當的修正措施,並重新啟動資料庫,讓腳本升級步驟持續執行至完成。

解決方式

此問題已在以下 SQL Server 更新中修正:

關於 SQL Server 建置

每個新的 SQL Server 建置都包含了前一個建置中所有的熱修補與安全修補。 我們建議您安裝最新版本的 SQL Server:

狀態

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

參考資料

了解 Microsoft 用來描述軟體更新的 術語