The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name '%.*ls' and the index name '%.*ls'. The duplicate key value is %ls.

Error Message:
Msg 1505, Level 16, State 1, Line 11
The CREATE UNIQUE INDEX statement terminated because a duplicate key was found for the object name ‘%.*ls’ and the index name ‘%.*ls’. The duplicate key value is %ls.

Severity level:
16.

Description:
This error message appears when you try to create a unique index on column(s), for which duplicate keys exist.

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 duplicate keys must be removed, or the index must be created as not unique index.

Versions:
All versions of SQL Server.

Example(s):
USE tempdb;
IF OBJECT_ID(‘tempdb..#t’) > 0
 DROP TABLE #t
CREATE TABLE #t
(
 c1 INT
)
INSERT INTO #t SELECT 1
INSERT INTO #t SELECT 1

CREATE UNIQUE INDEX UI_t_c1 ON #t(c1)

Remarks:
In the above statement we try to create a unique index on the column c1. Because the key value 1 does exist more than once in that column, the creation of the index fails and the error is raised.

]]>

Leave a comment

Your email address will not be published.