Symptoms
Assume that you have a partitioned table with Clustered Columnstore Index (CCI) in Microsoft SQL Server. When you run SELECT statement on Dynamic Management View (DMV)sys.dm_db_index_physical_stats against the table, you may receive an error message that resembles the following on Index Allocation Map (IAM) page after partition switch:
Error Msg 8959, Level 16, State 1, Line LineNumber
Table error: IAM page (1:361) for object ID ObjectID, index ID IndexID, partition ID PartitionID, alloc unit ID UnitID (type In-row data) is linked in the IAM chain for object ID ObjectID, index ID IndexID, partition ID PartitionID, alloc unit ID UnitID (type In-row data) by page (0:0).
Status
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
Resolution
This issue is fixed in the following cumulative updates for SQL Server:
About cumulative updates for SQL Server:
Each new cumulative update for SQL Server contains all the hotfixes and all the security fixes that were included with the previous cumulative update. Check out the latest cumulative updates for SQL Server:
More information
The cause of the issue is that when you perform a partition switch of the Columnstore table and if any tombstone deltastore exists in the source partition, this tombstone will not be switched to target partition which causes IAM page mismatch error. You can run "sys.dm_db_column_store_row_group_physical_stats" to know the detailed row groups status (including tombstone) about the Columnstore index.
Workaround
The issue would disappear after some time when background Tuple Mover destroyed the tombstone deltastore.
Or to work around this issue, you can remove that tombstone deltastore immediately to avoid the error by running "ALTER INDEX ... REORGANIZE" one or more times.
References
Learn about the terminology that Microsoft uses to describe software updates.