Cannot define an index on a view with ignore_dup_key index option. Remove ignore_dup_key option and verify that view definition does not allow duplicates, or do not index view.

Error Message:
Msg 1990, Level 16, State 1, Line 2
Cannot define an index on a view with ignore_dup_key index option. Remove ignore_dup_key option and verify that view definition does not allow duplicates, or do not index view.

Severity level:
16.

Description:
This error message appears when you try to create or alter an index on a view that specifies the ignore_dup_key option.

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 run this way. An index on a view can not be include the ignore_dup_key option.

Versions:
This error message was introduced with SQL Server 2000.

Example(s):
IF OBJECT_ID(‘dbo.v’) IS NOT NULL
    DROP VIEW dbo.v;
GO

IF OBJECT_ID(‘dbo.t’) IS NOT NULL
    DROP TABLE dbo.t;
GO

CREATE TABLE dbo.T
(
    c1 int,
    d1 datetime
);
GO

CREATE VIEW dbo.v
WITH SCHEMABINDING
AS
SELECT
    c1, d1
FROM
    dbo.t

GO

CREATE UNIQUE CLUSTERED INDEX cix_v ON dbo.v (c1)
WITH (IGNORE_DUP_KEY = ON);
GO

Remarks:
In the above example we try to create an index on the view dbo.v specifying the ignore_dup_key option. This raises the error.

]]>

Leave a comment

Your email address will not be published.