KB4091245 - 修正:存取違規發生在 2017 SQL Server 和 2016 SQL Server 查詢一個整數欄位的資料表時

套用到
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 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 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)

症狀

假設你有一個表格在 SQL Server 2017 和 Microsoft SQL Server 2016 和 2014 中有一個整數欄位,且該欄位具備以下特性:

  • 欄位被宣告為 NOT NULL。
  • 該欄位上定義了 CHECK 約束,且該限制只允許欄位值為 1。
  • 欄位參與尚未定義零分割的分割方案 (未來尚未建立的分割方案可能) 。

在這種情況下,當你嘗試查詢資料表時,會發生存取違規。

解決方式

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

累積更新 9 for SQL Server 2016 SP1

累積更新1 for SQL Server 2016 SP2

SQL Server 2017 累積更新 5

累積更新12 for SQL Server 2014 SP2

關於 SQL Server 的累積更新

每次 SQL Server 的累積更新都包含了前一個版本中所有的熱修補與安全修補。 請查看 SQL Server 的最新累積更新:

SQL Server 2016 最新累積更新

SQL Server 2017 最新累積更新

SQL Server 2014 最新累積更新

狀態

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

參考資料

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