Partager via


Créer des contraintes de validation

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Vous pouvez créer une contrainte de validation dans une table pour spécifier les valeurs de données admises dans une ou plusieurs colonnes dans SQL Server à l'aide de SQL Server Management Studio ou de TransactSQL. Pour plus d’informations sur l’ajout de contraintes de colonne, consultez ALTER TABLE column_constraint.

Pour plus d’informations, consultez Contraintes uniques et contraintes de validation.

Notes

Pour interroger des contraintes de validation existantes, utilisez la vue de catalogue système sys.check_constraints.

autorisations

Nécessite les autorisations ALTER sur la table.

Utiliser SQL Server Management Studio

  1. Dans l’Explorateur d’objets, développez la table à laquelle vous souhaitez ajouter une contrainte de validation, cliquez avec le bouton droit sur Contraintes, puis sélectionnez Nouvelle contrainte.

  2. Dans la boîte de dialogue Contraintes de validation, sélectionnez le champ Expression, puis les points de suspension (...).

  3. Dans la boîte de dialogue Expression de contrainte de validation , tapez l'expression SQL de la contrainte de validation. Par exemple, pour limiter les entrées dans la colonne SellEndDate de la table Product à une valeur supérieure ou égale à la date de la colonne SellStartDate ou à la valeur NULL, tapez :

    SellEndDate >= SellStartDate
    

    Ou, pour exiger que les entrées de la colonne zip comportent 5 chiffres, tapez :

    zip LIKE '[0-9][0-9][0-9][0-9][0-9]'
    

    Remarque

    Veillez à placer toutes les valeurs de contrainte non numériques entre des guillemets simples (').

  4. Cliquez sur OK.

  5. Dans la catégorie Identity , vous pouvez modifier le nom de la contrainte de validation et ajouter une description (propriété étendue) pour la contrainte.

  6. Dans la catégorie Concepteur de tables , vous pouvez définir le moment où la contrainte est appliquée.

    Action Sélectionnez Yes pour les options suivantes
    Tester la contrainte sur les données qui existaient avant d'avoir créé la contrainte Vérifier les données existantes à la création ou à l'activation
    Appliquer la contrainte lorsqu'une opération de réplication se produit sur cette table Appliquer la réplication
    Appliquer la contrainte lorsqu'une ligne de cette table est insérée ou mise à jour Appliquer INSERTs et UPDATEs
  7. Sélectionnez Fermer.

Utiliser Transact-SQL

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

  2. Dans la barre d’outils standard, sélectionnez Nouvelle requête.

  3. Copiez et collez l’exemple suivant dans la fenêtre de requête, puis sélectionnez Exécuter.

    Tout d’abord, créez la contrainte.

    ALTER TABLE dbo.DocExc
    ADD ColumnD INT NULL CONSTRAINT CHK_ColumnD_DocExc CHECK (
        ColumnD > 10
        AND ColumnD < 50
    );
    GO
    

    Pour tester la contrainte, ajoutez d’abord les valeurs qui passent la contrainte de validation.

    INSERT INTO dbo.DocExc (ColumnD) VALUES (49);
    

    Essayez ensuite d’ajouter des valeurs qui font échouer la contrainte de validation.

    INSERT INTO dbo.DocExc (ColumnD) VALUES (55);