FIX: "Cannot insert duplicate key" error occurs when you update a table by using a bitmap index that contains a partition key in SQL Server

Applies to: SQL Server 2012 EnterpriseSQL Server 2012 DeveloperSQL Server 2012 Standard More

Symptoms


Assume that you have a table that contains non-unique indexes in Microsoft SQL Server 2012 or SQL Server 2014. When you run a query to update the table by using the bitmap index that contains a partition key, you receive the following error message:
Msg 2601, Level 14, State 1, Line 1
Cannot insert duplicate key row in object <table name> with unique index <index name>. The duplicate key value is (0, <the value>).

Note The index is not unique index and allows duplicates.

Resolution


The issue was first fixed in the following cumulative update of SQL Server.

Cumulative Update 4 for SQL Server 2014

Cumulative Update 2 for SQL Server 2012 SP2

Cumulative Update 11 for SQL Server 2012 SP1

Workaround


To work around this issue, enable trace flag 8690 to disable the Spool operation. However, this workaround may cause a performance regression because the Spool is disabled.

Status


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