Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zmień klucz podstawowy z nieklastrowanego na klastrowany

1) Najpierw usuń istniejący indeks klastrowy (IX_TableX_FieldB):

   DROP INDEX TableX.IX_TableX_FieldB

2) Utwórz (tymczasowe) UNIKALNE ograniczenie dla unikalnych pól, do których odwołuje się klucz podstawowy

    ALTER TABLE TableX
    ADD CONSTRAINT UQ_TableX UNIQUE(FieldA)

3) Odrzuć KLUCZ GŁÓWNY

    ALTER TABLE TableX
    DROP CONSTRAINT PK_TableX

4) Odtwórz KLUCZ PODSTAWOWY jako KLASTRA

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

5) Usuń tymczasowe ograniczenie UNIQUE

   ALTER TABLE TableX
   DROP CONSTRAINT UQ_TableX

6) Dodaj ponownie IX_TableX_FieldB jako NIEZKLEJONY

   CREATE NONCLUSTERED INDEX IX_TableX_FieldB ON TableX(FieldB)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ukryte funkcje SQL Server

  2. SQL Server Wyświetl klucz podstawowy

  3. SQL:Jak uzyskać identyfikator wartości, które właśnie wstawiłem?

  4. Wartość wydajności prowadnic COMB

  5. Zdezorientowany co do kolejności logicznego przetwarzania zapytań Itzika Ben-Gana w jego książce SQL Server 2005 i SQL Server 2008