FIX: The change table is ordered incorrectly for updated rows after you enable change data capture for a Microsoft SQL Server database

Applies to: SQL Server 2008 EnterpriseSQL Server 2014 DeveloperSQL Server 2014 Developer

Microsoft distributes Microsoft SQL Server 2012, 2014 or 2016 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2012, 2014, 2016 fix release.


After you enable change data capture for a Microsoft SQL Server 2012 ,2014 or 2016 database, the __$operation column in the change table may be ordered incorrectly for updated rows. When you update a row, there are two rows in the change table, with delete and insert for __$operation. But an insert operation may unexpectedly appear before a delete operation. If the application reapplies the rows to another table with a primary key constraint, the following primary key violation may occur:
Msg 2627, Level 14, State 1, Line 6Violation of PRIMARY KEY constraint 'Primary_Key_name'. Cannot insert duplicate key in object 'table_name'. The duplicate key value is (value).


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.


Learn about the terminology that Microsoft uses to describe software updates.