web-dev-qa-db-fra.com

Comment créer la colonne "Pas de doublons" dans SQL Server 2008?

J'ai une table simple dans ma base de données SQL Server. Ce tableau contient deux colonnes: ID int, Name nvarchar(50). La colonne ID est la clé primaire de ma table.

Je veux que la colonne "Name" soit "(No Duplicates) ", comme dans Microsoft Access, mais cette colonne n'est pas la colonne principale. Comment faire?

36
Wahid Bitar

Ajoutez une contrainte unique pour cette colonne:

ALTER TABLE Foo ADD CONSTRAINT UQ_Name UNIQUE (Name)

Pour l'ajouter via l'interface utilisateur de SQL Management Studio:

  1. Ouvrez SQL Server Management Studio.
  2. Développez le dossier Tables de la base de données où vous souhaitez créer la contrainte.
  3. Cliquez avec le bouton droit sur la table à laquelle vous souhaitez ajouter la contrainte et cliquez sur Conception .
  4. Dans Table Designer, cliquez sur Index/Keys .
  5. Cliquez sur Ajouter .
  6. Choisissez Clé unique dans la liste déroulante Type.

Pour gérer une situation où une violation de contrainte unique se produit, voir pour erreur 2601 .

84
Anton Gogolev

Cela peut également être fait d'une autre manière avec l'interface graphique SSMS si vous préférez:

  1. Faites un clic droit sur "Index" sous votre table dans l'explorateur de solutions SSMS et cliquez sur "Nouvel index ..." (je sais que vous cherchez à créer une contrainte, pas un index, mais c'est exactement ce que le ADD CONSTRAINT Le script SQL le fait.

enter image description here

  1. Donnez un nom à un nouvel index (par exemple, "UQ_MyUniqueColumn"), cochez "Unique" et cliquez sur "Ajouter ..."

enter image description here

  1. Vérifiez votre colonne dans la fenêtre suivante

enter image description here

  1. Cliquez sur OK dans les deux fenêtres
7
Tony L.

Vous recherchez la contrainte UNIQUE .

5
Thomas Owens