51 votes

Quelle est la différence entre une clé unique et un index avec IsUnique=Yes ?

J'ai une table avec une clé primaire, mais je veux que deux autres colonnes soient contraintes pour que la combinaison des deux soit toujours garantie comme unique.

(un exemple stupide : Dans une table BOOKS, la colonne IBAN est la clé primaire, mais la combinaison des colonnes Title et Author doit aussi toujours être unique).

Dans le Management Studio du serveur SQL, il est possible de créer un nouvel index et de définir IsUnique sur Oui, ou de créer une nouvelle clé unique.

Quelle est la différence entre les deux approches, et laquelle convient le mieux à quels objectifs ?

5 votes

Juste au cas où cela serait pertinent : si vous avez besoin de permettre à plusieurs lignes d'être NULL mais que toutes les lignes non NULL doivent être UNIQUES : soit vous imposez cela avec un Trigger, soit une VUE avec un INDEX UNIQUE - CREATE VIEW xxx AS SELECT Title, Author FROM Books WHERE (Title + Author) IS NOT NULL puis créez un index sur cette vue.

0 votes

Merci Kirsten, c'était une information utile !

1 votes

0voto

tehvan Points 3949

Les index uniques sont des clés uniques.

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