KB4056117 - 修正:在 SQL Server 2016 和 2017 中,當您將記憶體最佳化的資料表變數作為資料表值參數傳遞到預存程序中時,會發生判斷提示

套用到
SQL Server 2016 Service Pack 1 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

症狀

假設您在 Microsoft SQL Server 2016 和 2017 中使用 In-Memory 線上交易處理 (OLTP) 。 當您將記憶體最佳化的資料表變數作為TVP) 的資料表值參數傳遞至預存程式 (時,可能會發生判斷提示錯誤。 此外,SQL Server 會產生傾印檔案。

注意

  • 位置: “interop.cpp”:LineNumber
    運算式:false
    SPID: SPID
    處理序識別碼: ProcessID
    Msg 3624,層級 20,狀態 1,程序 ProcedureName,行 LineNumber [批次開始行 LineNumber]
  • 系統判斷提示檢查失敗。 如需詳細資料,請檢查 SQL Server 錯誤記錄檔。 一般而言,判斷提示失敗是由軟體錯誤或資料損毀所造成。 若要檢查資料庫損毀,請考慮執行 DBCC CHECKDB。 如果您同意在安裝期間傳送傾印給 Microsoft,將會將迷你傾印傳送給 Microsoft。 更新可能會從 Microsoft 的最新 Service Pack 或技術支援的 Hotfix 中取得。
  • Msg 596, Level 21, State 1, Line LineNumber
    無法繼續執行,因為工作階段處於終止狀態。
    Msg 0, Level 20, State 0, Line Number, Msg 0, Level 20, State 0, Line Number
    目前命令發生嚴重錯誤。  如果有結果,應丟棄。

解決方式

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

SQL Server 2017 累積更新 4

SQL Server 2016 SP1 的累積更新 7

關於 SQL Server 的累積更新:

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

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

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

狀態

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

參考資料

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