徵狀
請試想下列案例:
-
在 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 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
隨選熱修復程式資訊:
此問題已于 SQL Server 的下列隨選即用 hotfixe 中修正:
狀態
Microsoft 已確認<適用於>一節中所列的 Microsoft 產品確實有上述問題。
參考
瞭解 Microsoft 用於描述軟體更新的 詞彙。