Contrainte de vérification du serveur SQL

Contrainte de vérification du serveur SQL

Une contrainte fait référence à une règle qui définit comment les données d'une colonne donnée sont appliquées. Une contrainte peut effectuer des actions telles que la prévention de l'insertion de valeurs nulles, la prévention de l'insertion de valeurs en double, et plus.

Dans cet article, nous explorerons l'une des contraintes pratiques du serveur SQL appelé Check Contrainte. Une contrainte de vérification est principalement utilisée pour assurer l'intégrité des données dans une colonne donnée.

À l'aide d'une contrainte de vérification, vous pouvez vous assurer que les données qui sont ajoutées à une colonne donnée évaluent constamment à une valeur booléenne donnée. Par exemple, vous pouvez ajouter une contrainte de vérification qui garantit que seules les valeurs passées d'une date spécifique sont ajoutées à cette colonne.

Discutons de cela plus loin.

Contrainte de vérification du serveur SQL

Il existe deux façons d'ajouter une contrainte de vérification à une colonne de table:

  1. Pendant la création de table
  2. En utilisant la commande alter table sur la table existante

C'est toujours une excellente pratique pour ajouter une contrainte pendant la création de table. Cela garantit que la règle est appliquée à toutes les données de cette colonne.

Pour illustrer, prenez la définition du tableau qui est montrée dans les éléments suivants:

Créer des utilisateurs de table (
ID INT Identité Clé primaire,
nom d'utilisateur varchar (100) pas null,
INSCH_DATE DATE CHICK (INSCH_DATE> '2022-01-01')
));

Dans le tableau d'exemple donné, nous avons créé trois colonnes, chacune avec son type de données et ses valeurs uniques. Cependant, dans la colonne inscrit_date, nous définissons la contrainte de vérification qui vérifie que toute valeur de date ajoutée à cette colonne est supérieure à 2022-01-01.

Nous commençons par appeler le mot-clé Check suivi de l'expression booléenne que nous souhaitons appliquer à cette colonne.

Vous pouvez également définir un nom pour la contrainte en utilisant le mot-clé de contrainte. Un exemple est le suivant:

Créer des utilisateurs de table (
ID INT Identité Clé primaire,
nom d'utilisateur varchar (100) pas null,
CONSTRAITS DE DATE ISCH_DATE VÉRIFICATION VÉRIFY_DATE (ENROLL_DATE> '2022-01-01')
));

Dans ce cas, nous attribuons le nom qui est le «Verify_Date» à la contrainte créée. Nommer une contrainte peut vous faciliter la vie lorsque vous devez supprimer ou mettre à jour les paramètres de contrainte.

NOTE: Vous ne pouvez pas avoir des contraintes sans nom dans votre base de données. Par conséquent, si aucun nom n'est fourni, le serveur SQL génère automatiquement un nom pour votre contrainte.

Une fois que nous avons défini une contrainte, nous pouvons ajouter les données comme indiqué dans ce qui suit:

insérer
dans
utilisateurs (nom d'utilisateur,
inscrit_date)
valeurs ('user1',
«2022-01-02»);

Vous remarquerez peut-être que la déclaration d'insertion précédente adhère aux règles de contrainte dans la colonne inscrit_date.

Cependant, si nous violons les règles de cette contrainte, le serveur SQL renvoie une erreur comme illustré dans ce qui suit:

insérer
dans
utilisateurs (nom d'utilisateur,
inscrit_date)
valeurs ('user2', '2021-12-31');

Sortir:

Erreur SQL [547] [23000]: L'instruction d'insertion est en conflit avec la contrainte de vérification "Verify_Date". Le conflit s'est produit dans la base de données "Resolver", Tableau "DBO.Utilisateurs ", colonne« inscrire_date ».

Comme vous pouvez le voir, le serveur SQL vous alerte de la violation des contraintes par l'instruction INSERT.

Modification d'une contrainte existante

Pour modifier la définition d'une contrainte existante à l'aide de Transact-SQL, vous devez supprimer la contrainte et la recréer avec les nouvelles définitions.

Ajout d'une contrainte de vérification à un tableau existant

Pour ajouter une contrainte de vérification à un tableau existant, vous utilisez la syntaxe fournie dans ce qui suit:

ALTER TABLE TABLE_NAME
Ajouter une contrainte CONSTRAINT_NAME CHECK (CONSTRAINT_DEFINITION);

Supprimer une contrainte de vérification

Pour supprimer une contrainte de vérification, vous pouvez utiliser la commande alter Table comme indiqué dans ce qui suit:

ALTER TABLE TABLE_NAME
Drop Contraint CONSTRAINT_NAME;

Désactiver une contrainte

Vous pouvez ignorer les règles de contrainte sans laisser tomber la contrainte en la désactivant. Ce qui suit montre la syntaxe pour désactiver une contrainte:

ALTER TABLE TABLE_NAME
NOCHECK CONSTRAINT CONSTRAINT_NAME;

La syntaxe donnée doit désactiver la contrainte pour les instructions d'insertion et de mise à jour.

Conclusion

Dans cet article, nous avons exploré comment utiliser le travail avec la contrainte de vérification dans le serveur SQL. Nous avons discuté de la façon de créer une nouvelle contrainte, comment modifier une contrainte, comment désactiver une contrainte et comment supprimer une contrainte d'un tableau.