KB4465745-修正:當您在 SQL Server 2016 和2017中使用 OUTPUT 子句執行 MERGE 語句時發生斷言錯誤

徵狀

請試想下列案例:

  • 在 Windows 版 SQL Server 2016 或2017中,您執行的 MERGE 語句中有一個 OUTPUT 子句或一個 ad hoc Transact-sql 批次。

  • 目的地資料庫使用 BULK_LOGGED 或簡單的恢復模型。

  • 您會將大量資料(例如:6000列)插入另一個資料庫中的資料表。

在這種情況下,會發生斷言錯誤,而且您可能會收到類似以下的錯誤訊息:

Msg 3624、Level 20、State 1、Line LineNumber

系統斷言檢查已失敗。 如需詳細資訊,請參閱 SQL Server 錯誤記錄。 通常,宣告失敗是由軟體錯誤或資料損毀所導致。 若要檢查資料庫是否損毀,請考慮執行 DBCC CHECKDB。 如果您同意在安裝期間將轉儲傳送至 Microsoft,則會將迷你轉儲傳送至 Microsoft。 在最新的 Service Pack 中,或從技術支援取得的修補程式中,可能會有 Microsoft 的更新。

解決方案

累積更新資訊:

此問題已在 SQL Server 的下列累積更新中修正:

      SQL Server 2017 累計更新12

      SQL Server 2016 SP2 累積更新4

      Cumulative Update SQL Server 2016 的累積更新 13 Service Pack1

      SQL Server 2016 SP1 累計更新12

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:

SQL Server 2017 的最新累計更新

SQL Server 2016 的最新累計更新

隨選熱修復程式資訊:

此問題已于 SQL Server 的下列隨選即用 hotfixe 中修正:

狀態

Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。

參考

瞭解 Microsoft 用於描述軟體更新的 詞彙

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與我們的其中一個 Office 支援專員連絡以深入了解您的意見。

×