KB4091245 - 修复:在 2017 SQL Server 2017 年和 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)

症状

假设你有一个表,该表在 2017 SQL Server 具有整数列,Microsoft SQL Server 2016 和 2014 年,并且该列具有以下功能:

  • 列声明为 NOT NULL。
  • 列上定义了 CHECK 约束,该约束仅允许列的值为 1。
  • 列参与尚未定义零个分区的分区方案, (此类方案可能针对尚未) 设置的未来分区拆分定义。

在此方案中,尝试查询表时,会发生访问冲突。

解决方法

以下SQL Server累积更新中修复了此问题:

SQL Server 2016 SP1 的累积更新 9

SQL Server 2016 SP2 的累积更新 1

2017 SQL Server累积更新 5

SQL Server 2014 SP2 的累积更新 12

关于 SQL Server 的累积更新

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

SQL Server 2016 年的最新累积更新

SQL Server 2017 的最新累计更新

SQL Server 2014 年的最新累积更新

状态

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

参考资料

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