Microsoft 将 Microsoft SQL Server 2012、2014 或 2016 修补程序作为一个可下载文件分发。 由于修补程序是累积的,因此每个新版本都包含之前的 SQL Server 2012、2014、2016 修补程序版本中包含的所有修补程序和安全修补程序。
症状
为 Microsoft SQL Server 2012、2014 或 2016 数据库启用 更改数据捕获 后,更改表中 __$operation 列对已更新行的排序可能不正确。 更新行时,更改表中包含两行,其中 delete 和 insert 用于 __$operation 。 但是,插入操作可能会意外地出现在删除操作之前。 如果应用程序将行重新应用于另一个具有主键约束的表,则可能会发生以下主键冲突:
注意
消息 2627,级别 14,状态 1,行 6 违反主键约束“Primary_Key_name”。 无法在对象“table_name”中插入重复键。 重复的键 值 (值) 。
解决方法
此问题已在 SQL Server 的以下累积更新中修复。
- SQL Server 2016 RTM 的累积更新 5
- SQL Server 2016 SP1 累积更新 2
- SQL Server 2014 SP2 累积更新 4
- SQL Server 2014 SP1 累积更新 10
- SQL Server 2014 累积更新 9
- SQL Server 2012 SP3 累积更新 8
- SQL Server 2012 SP2 累积更新 7
建议:安装 SQL Server 的最新累积更新
SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
- SQL Server 2016 的最新累计更新
- SQL Server 2014 的最新累计更新
- SQL Server 2012 SP3 的最新累计更新
- SQL Server 2012 SP2 的最新累计更新
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
参考资料
了解 Microsoft 用于描述软件更新的术语。