Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Modificare una chiave primaria da Non cluster a Cluster

1) Elimina prima l'indice cluster esistente (IX_TableX_FieldB):

   DROP INDEX TableX.IX_TableX_FieldB

2) Creare un vincolo UNIQUE (temporaneo) sui campi univoci a cui si fa riferimento nella chiave primaria

    ALTER TABLE TableX
    ADD CONSTRAINT UQ_TableX UNIQUE(FieldA)

3) Rilascia la CHIAVE PRIMARIA

    ALTER TABLE TableX
    DROP CONSTRAINT PK_TableX

4) Ricrea la CHIAVE PRIMARIA come CLUSTERED

   ALTER TABLE TableX
   ADD CONSTRAINT PK_TableX PRIMARY KEY CLUSTERED(FieldA)

5) Elimina il vincolo UNIQUE temporaneo

   ALTER TABLE TableX
   DROP CONSTRAINT UQ_TableX

6) Aggiungi nuovamente IX_TableX_FieldB come NON CLUSTERED

   CREATE NONCLUSTERED INDEX IX_TableX_FieldB ON TableX(FieldB)