sql >> Databasteknik >  >> RDS >> Sqlserver

Ändra en primär nyckel från Nonclustered till Clustered

1) Släpp det befintliga klustrade indexet först (IX_TableX_FieldB):

   DROP INDEX TableX.IX_TableX_FieldB

2) Skapa en (tillfällig) UNIK begränsning på de unika fälten som refereras till i primärnyckeln

    ALTER TABLE TableX
    ADD CONSTRAINT UQ_TableX UNIQUE(FieldA)

3) Släpp PRIMÄRNYCKELN

    ALTER TABLE TableX
    DROP CONSTRAINT PK_TableX

4) Återskapa PRIMÄRNYCKELN som KLUSTERAD

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

5) Släpp den tillfälliga UNIKA begränsningen

   ALTER TABLE TableX
   DROP CONSTRAINT UQ_TableX

6) Lägg till IX_TableX_FieldB igen som ICKELUSTERAD

   CREATE NONCLUSTERED INDEX IX_TableX_FieldB ON TableX(FieldB)


  1. Välj att alla poster inte uppfyller vissa villkor i en sammanfogad tabell

  2. Konvertera MySQL till MS Access

  3. MySQL:ERROR 1022 (23000):Kan inte skriva; dubblettnyckel i tabellen '#sql-2b8_2'

  4. Hur kan jag få maxdatumet (per primärnyckel) och få dess skillnad mot det från en annan tabell?