SQL Server: modifier un index principal en cluster pour un non-cluster

Comment puis-je modifier un index clusterisé primaire pour devenir un index non-clusturé. (En tant que table "secondaire", je souhaite utiliser l'index clusturé pour la colonne de key étrangère de la table "header".)

Cela ne fonctionne pas pour moi (l'erreur semble raisonnable 🙂

DROP INDEX ClientUsers.PK_ClientUsers CREATE UNIQUE CLUSTERED INDEX IDX_ClientUsers_Id ON ClientUsers(Id) Msg 3723, Level 16, State 4, Line 7 An explicit DROP INDEX is not allowed on index 'ClientUsers.PK_ClientUsers'. It is being used for PRIMARY KEY constraint enforcement. 

Je pense que vous devrez:

  1. Déposez le FK
  2. Déposez le PK
  3. Déposez l'index cluster
  4. Recréer le PK
  5. Recréer le FK
  6. Recréez l'index cluster sur la colonne FK

puis éventuellement créer un index secondry sur la colonne PK

Avez-vous essayé d'abandonner la contrainte PRIMARY KEY sur la table – puis de supprimer l'index – puis de rappend les deux?

 ALTER TABLE table_name DROP primary key