Msg 1996, Level 16, State 1, Line 1
Cannot create index enforcing primary key constraint ‘%.*ls’ using DROP_EXISTING option while table has an XML Index.
This error message appears when you try to rebuild an index that is used to enforce a PRIMARY KEY constraint while there is a XML index on this table.
The T-SQL statement can be parsed, but causes the error at runtime.
Error of the Severity Level 16 are generated by the user and can be fixed by the SQL Server user. The statement cannot be executed this way. The XML index must first be dropped before the relational index can be rebuild. After rebuild you need to create the XML index anew.
This error message was introduced with SQL Server 2005.
IF OBJECT_ID(‘tempdb..#t’) > 0
DROP TABLE #t
CREATE TABLE #t
CONSTRAINT CIX_t_id PRIMARY KEY,
CREATE PRIMARY XML INDEX IX_XML_t_c1
ALTER INDEX CIX_t_id ON #t
CREATE UNIQUE CLUSTERED INDEX CIX_t_id
DROP_EXISTING = ON,
ONLINE = ON);
In the above example we try to rebuild the index that enforces the PRIMARY KEY constraint via the DROP_EXISTING option, while there is a XML index created on that table. This raises the error.