KB4055556 - 修复:在 SQL Server 2014 和 2016 中联机重新生成索引的单个分区时出错

应用对象
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 2014 Service Pack 2 - duplicate (do not use) SQL Server 2016 Service Pack 1 SQL Server 2016 Standard - duplicate (do not use) 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)

症状

假设在 Microsoft SQL Server 2014 和 2016 的分区表中将计算列标记为 PERSISTED。 尝试在表上联机重新生成索引的单个分区时,可能会出现类似于以下内容的错误消息。

注意

  • 消息 4819,级别 16,状态 1,Line LineNumber
  • 无法大容量加载。 批量数据流被错误地指定为排序,或者数据违反了目标表施加的唯一性约束。 以下两行的排序顺序不正确:第一行的主键: (001、9999、ABC、987654321、YWZ、98765) 、第二行的主键: (001、0001、CDE、123456789、YWZ、123456) 。

解决方法

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

2017 SQL Server累积更新 4

SQL Server 2016 SP1 累积更新 7

SQL Server 2014 SP2 的累积更新 9

关于SQL Server的累积更新:

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

SQL Server 2017 的最新累计更新

SQL Server 2016 年的最新累积更新

SQL Server 2014 年的最新累积更新

状态

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

参考资料

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