Index "%.*ls" on table "%.*ls" (specified in the FROM clause) is disabled or resides in a filegroup which is not online.

Error Message:
Msg 315, Level 16, State 1, Line 11
Index “%.*ls” on table “%.*ls” (specified in the FROM clause) is disabled or resides in a filegroup which is not online.

Severity level:
16.

Description:
This error message appears when you try to force the usage of an index in a hint, but this index is either disabled or resides in an offline filegroup.

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

Resolution:
Errors 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 index that you are trying to force SQL Server to use must be enabled and in an online filegroup.

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

Example(s):
USE tempdb;
GO
IF OBJECT_ID (‘tempdb..#t’) IS NOT NULL
    DROP TABLE #t;
   
CREATE TABLE #t (c1 int, s1 varchar(20));

CREATE INDEX IX_t_c1 ON #t(c1);

ALTER INDEX IX_t_c1 ON #t
    DISABLE;

SELECT
    *
FROM
    #t WITH (INDEX = IX_t_c1)

Remarks:
In the above example we try to force SQL Server to use the index ‘IX_t_c1’. Because this index is deactivated, the error is raised.

]]>

Leave a comment

Your email address will not be published.