Créer des contraintes uniques

Vous pouvez créer une contrainte unique dans SQL Server 2012 à l'aide de SQL Server Management Studio ou Transact-SQL pour interdire l'entrée de doublons dans des colonnes spécifiques qui ne participent pas à une clé primaire. La création d'une contrainte unique crée automatiquement un index unique correspondant.

Dans cette rubrique

  • Avant de commencer :

    Sécurité

  • Pour créer une contrainte unique à l'aide de :

    SQL Server Management Studio

    Transact-SQL

Avant de commencer

Sécurité

Autorisations

Requiert une autorisation ALTER sur la table.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de SQL Server Management Studio

Pour créer une contrainte unique

  1. Dans l'Explorateur d'objets, cliquez avec le bouton droit sur la table à laquelle vous souhaitez ajouter une contrainte unique et cliquez sur Conception.

  2. Dans le menu Concepteur de tables, cliquez sur Index/Clés.

  3. Dans la boîte de dialogue Index/Clés, cliquez sur Ajouter.

  4. Dans la grille sous Général, cliquez sur Type et choisissez Clé unique dans la zone de liste déroulante située à droite de la propriété.

  5. Dans le menu Fichier, cliquez sur Enregistrer table name.

Icône de flèche utilisée avec le lien Retour en haut[Top]

Utilisation de Transact-SQL

Pour créer une contrainte unique

  1. Dans l'Explorateur d'objets, connectez-vous à une instance de Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter. L'exemple crée la table TransactionHistoryArchive4 et une contrainte unique sur la colonne TransactionID.

    USE AdventureWorks2012;
    GO
    CREATE TABLE Production.TransactionHistoryArchive4
     (
       TransactionID int NOT NULL, 
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID) 
    ); 
    GO
    

Pour créer une contrainte unique sur une table existante

  1. Dans l'Explorateur d'objets, connectez-vous à une instance de Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter. L'exemple crée une contrainte unique sur les colonnes PasswordHash et PasswordSalt dans la table Person.Password.

    USE AdventureWorks2012; 
    GO
    ALTER TABLE Person.Password 
    ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt); 
    GO
    

Pour créer une contrainte unique sur une nouvelle table

  1. Dans l'Explorateur d'objets, connectez-vous à une instance de Moteur de base de données.

  2. Dans la barre d'outils standard, cliquez sur Nouvelle requête.

  3. Copiez et collez l'exemple suivant dans la fenêtre de requête, puis cliquez sur Exécuter. L'exemple crée une table et définit une contrainte unique sur la colonne TransactionID

    USE AdventureWorks2012;
    GO
    CREATE TABLE Production.TransactionHistoryArchive2
    (
       TransactionID int NOT NULL,
       CONSTRAINT AK_TransactionID UNIQUE(TransactionID)
    );
    GO
    

    Pour plus d'informations, consultez ALTER TABLE (Transact-SQL), CREATE TABLE (Transact-SQL) et table_constraint (Transact-SQL).

Icône de flèche utilisée avec le lien Retour en haut[Top]