Cannot alter a non-unique index with ignore_dup_key index option. Index '%.*ls' is non-unique.

Error Message:
Msg 1915, Level 16, State 1, Line 1
Cannot alter a non-unique index with ignore_dup_key index option. Index ‘%.*ls’ is non-unique.

Severity level:
16.

Description:
This error message appears when you try to use the IGNORE_DUP_KEY option for a non-unique index.

Consequences:
The T-SQL statement can be parsed, but causes the error at runtime.

Resolution:
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 IGNORE_DUP_KEY option cannot be used for a non-unique index.

Versions:
All versions of SQL Server

Example(s):
USE tempdb;
GO
CREATE TABLE #t
(
 c1 INT
);
GO
CREATE INDEX UI_t_c1 ON #t(c1)
GO
ALTER INDEX UI_t_c1 ON #t
SET (IGNORE_DUP_KEY = ON);
GO
DROP TABLE #t;
GO

Remarks:
In the above example we try to use the IGNORE_DUP_KEY option for the non-unique index UI_t_c1. This raises the error.

]]>

Leave a comment

Your email address will not be published.