Index cannot be created on object '%.*ls' because the object is not a user table or view.

Error Message:
Msg 1914, Level 16, State 1, Line 1
Index cannot be created on object ‘%.*ls’ because the object is not a user table or view.

Severity level:
16.

Description:
This error message appears when you try to create an index on the object that is not a table or a view.

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. Indices can only be created for table and view objects. For all other object types it is not allowed to create an index.

Versions:
All versions of SQL Server

Example(s):
USE tempdb;
GO
CREATE FUNCTION dbo.MyDate()
RETURNS DATETIME
WITH EXECUTE AS CALLER
AS
BEGIN
 RETURN (GETDATE())
END;
GO
CREATE UNIQUE INDEX UI_t_c1 ON dbo.MyDate(c1)

DROP FUNCTION dbo.MyDate

Remarks:
In the above example we try to create an index for the user-defined function dbo.MyDate. This raises the error.

]]>

Leave a comment

Your email address will not be published.