Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Alterar uma chave primária de não clusterizada para clusterizada


1) Elimine primeiro o índice clusterizado existente (IX_TableX_FieldB):
   DROP INDEX TableX.IX_TableX_FieldB

2) Crie uma restrição UNIQUE (temporária) nos campos exclusivos referenciados na chave primária
    ALTER TABLE TableX
    ADD CONSTRAINT UQ_TableX UNIQUE(FieldA)

3) Solte a CHAVE PRIMÁRIA
    ALTER TABLE TableX
    DROP CONSTRAINT PK_TableX

4) Recrie a CHAVE PRIMÁRIA como CLUSTERED
   ALTER TABLE TableX
   ADD CONSTRAINT PK_TableX PRIMARY KEY CLUSTERED(FieldA)

5) Elimine a restrição UNIQUE temporária
   ALTER TABLE TableX
   DROP CONSTRAINT UQ_TableX

6) Adicione o IX_TableX_FieldB novamente como NONCLUSTERED
   CREATE NONCLUSTERED INDEX IX_TableX_FieldB ON TableX(FieldB)