Cannot convert a clustered index to a nonclustered index by using the DROP_EXISTING option. To change the index type from clustered to nonclustered, delete the clustered index, and then create a nonclustered index by using two separate statements.

Error Message:
Msg 1925, Level 16, State 2, Line 1
Cannot convert a clustered index to a nonclustered index by using the DROP_EXISTING option. To change the index type from clustered to nonclustered, delete the clustered index, and then create a nonclustered index by using two separate statements.

Severity level:
16.

Description:
This error message appears when you try to use the DROP_EXISTING option to change a clustered index into a nonclustered 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. You must first drop the clustered index and thereafter create the nonclustered index in a second statement.

Versions:
All versions of SQL Server

Example(s):
USE tempdb;
GO
CREATE TABLE t
(
 c1 INT
)
GO
CREATE CLUSTERED INDEX CIX_t_c1
    ON dbo.t(c1)
  WITH (FILLFACTOR = 80,
        PAD_INDEX = ON,
        DROP_EXISTING = OFF);
GO
CREATE NONCLUSTERED INDEX CIX_t_c1
    ON dbo.t(c1)
  WITH (FILLFACTOR = 80,
        PAD_INDEX = ON,
        DROP_EXISTING = ON);
GO
DROP TABLE t

Remarks:
In the above example we try in the second CREATE INDEX statement to change the clustered index CIX_t_c1 into a nonclustered index. This raises the error.

]]>

Leave a comment

Your email address will not be published.