KB4091245 - 修复:在 SQL Server 2017 和 SQL Server 2016 中查询包含整数列的表时发生访问冲突

应用对象
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 的以下累积更新中修复:

SQL Server 2016 SP1 累积更新 9

SQL Server 2016 SP2 累积更新 1

SQL Server 2017 累积更新 5

SQL Server 2014 SP2 累积更新 12

关于 SQL Server 的累积更新

SQL Server 的每个新累积更新都包含先前内部版本中的所有修补程序和安全修补程序。 查看 SQL Server 的最新累积更新:

SQL Server 2016 的最新累计更新

SQL Server 2017 的最新累计更新

SQL Server 2014 的最新累计更新

状态

Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
 

参考资料

了解 Microsoft 用于描述软件更新的术语。