Création et modification des contraintes UNIQUE

Vous pouvez créer une contrainte UNIQUE dans le cadre de la définition d'une table lorsque vous créez celle-ci. Si une table existe déjà, vous pouvez ajouter une contrainte UNIQUE, sous réserve que la colonne ou la combinaison de colonnes qui compose la contrainte UNIQUE ne contienne que des valeurs uniques. Une table peut contenir plusieurs contraintes UNIQUE.

Si une contrainte UNIQUE existe déjà, vous pouvez la modifier ou la supprimer, par exemple si vous souhaitez que la contrainte UNIQUE de la table référence d'autres colonnes ou si vous souhaitez modifier le type de cluster d'index.

[!REMARQUE]

Pour modifier une contrainte UNIQUE, vous devez d'abord supprimer la contrainte UNIQUE existante, puis la recréer avec sa nouvelle définition.

Lorsque vous ajoutez une contrainte UNIQUE à une ou plusieurs colonnes dans la table, par défaut, le Moteur de base de données examine les données existantes dans les colonnes pour s'assurer que toutes les valeurs sont uniques. Si une contrainte UNIQUE est ajoutée à une colonne qui comporte des valeurs dupliquées, le moteur de base de données retourne une erreur et n'ajoute pas la contrainte.

Le moteur de base de données crée automatiquement un index UNIQUE pour appliquer l'impératif d'unicité de la contrainte UNIQUE. Dès lors, en cas de tentative d'insertion d'une ligne dupliquée, le moteur de base de données retourne un message d'erreur indiquant que la contrainte UNIQUE a été violée et n'ajoute pas la ligne à la table. Sauf si un index cluster est explicitement spécifié, un index non-cluster unique est créé par défaut pour assurer l'application de la contrainte UNIQUE.

L'extrait suivant d'une instruction CREATE TABLE montre la définition de la colonne Name et spécifie une contrainte UNIQUE sur cette colonne pour s'assurer que les valeurs sont uniques.

Name nvarchar(100) NOT NULL

UNIQUE NONCLUSTERED

Pour lever l'impératif d'unicité des valeurs entrées dans la colonne ou la combinaison de colonnes incluses dans la contrainte, supprimez une contrainte UNIQUE. Vous ne pouvez pas supprimer une contrainte UNIQUE si la colonne associée est utilisée comme clé de texte intégral de la table.

Pour créer une contrainte UNIQUE lors de la création d'une table

Pour créer une contrainte UNIQUE sur une table existante

Pour supprimer une contrainte UNIQUE

Pour obtenir des informations sur les contraintes UNIQUE