124 votes

Comment puis-je modifier une contrainte de clé primaire à l’aide de la syntaxe SQL ?

J’ai une table qui manque une colonne dans sa contrainte de clé primaire. Au lieu de le modifier via SQL Server, je veux le mettre dans un script pour l’ajouter dans le cadre de nos scripts de mise à jour.

Quelle syntaxe puis-je utiliser pour ce faire ? Dois-je supprimer et recréer la contrainte de clé ?

191voto

darnir Points 790

oui. La seule façon serait de supprimer la contrainte avec une table Alter, puis de la recréer.

24voto

Oleg Dok Points 12155

`` ne peut pas être modifié, vous pouvez seulement le supprimer et créer à nouveau. Pour les grands jeux de données, cela peut entraîner une longue durée d’exécution et donc une indisponibilité de la table.

4voto

MNF Points 307

Dans mon cas, je souhaite ajouter une colonne à une clé primaire (column4). J’ai utilisé ce script pour ajouter column4

4voto

Oky Points 33

En ce qui concerne les performances, il est inutile de conserver les index non cluster pendant cette période, car ils seront mis à jour lors de la suppression et de la création. S’il s’agit d’un ensemble de données volumineuses, vous devriez envisager de renommer la table (si possible, tous les paramètres de sécurité qu’elle contient?), de recréer une table vide avec les clés correctes, d’y migrer toutes les données. Vous devez vous assurer que vous avez suffisamment d’espace pour cela.

-4voto

Garrett Taiji Points 45

vous pouvez renommer des objets de contrainte à l’aide de sp_rename (comme décrit dans cette réponse)

par exemple:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X