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).
This issue is fixed in the following cumulative updates of SQL Server.
- Cumulative Update 5 for SQL Server 2016 RTM
- Cumulative Update 2 for SQL Server 2016 SP1
- Cumulative Update 4 for SQL Server 2014 SP2
- Cumulative Update 10 for SQL Server 2014 SP1
- Cumulative Update 9 for SQL Server 2014
- Cumulative Update 8 for SQL Server 2012 SP3
- Cumulative Update 7 for SQL Server 2012 SP2
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.