sql >> Database >  >> RDS >> Sqlserver

Een primaire sleutel wijzigen van niet-geclusterd in geclusterd

1) Verwijder eerst de bestaande geclusterde index (IX_TableX_FieldB):

   DROP INDEX TableX.IX_TableX_FieldB

2) Creëer een (tijdelijke) UNIEKE beperking voor de unieke velden waarnaar wordt verwezen in de primaire sleutel

    ALTER TABLE TableX
    ADD CONSTRAINT UQ_TableX UNIQUE(FieldA)

3) Laat de PRIMAIRE SLEUTEL vallen

    ALTER TABLE TableX
    DROP CONSTRAINT PK_TableX

4) Maak de PRIMAIRE SLEUTEL opnieuw als GECLUSTERD

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

5) Laat de tijdelijke UNIEKE beperking vallen

   ALTER TABLE TableX
   DROP CONSTRAINT UQ_TableX

6) Voeg de IX_TableX_FieldB weer toe als NIET-GECLUSTERD

   CREATE NONCLUSTERED INDEX IX_TableX_FieldB ON TableX(FieldB)


  1. Variabelen gebruiken in de WHERE-clausule voor een SQL SELECT-query

  2. MySQL Group van kwartalen naar periodes

  3. Hoe kan ik voorkomen dat een automatisch oplopende ID wordt bijgewerkt bij het bijwerken van een dubbele sleutel?

  4. Npgsql:Oude drijvende-kommaweergave voor tijdstempels niet ondersteund