Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment créer une contrainte de vérification sur une seule colonne dans SQL Server - Tutoriel SQL Server / TSQL Partie 83

Scénario :

Vous travaillez en tant que développeur SQL Sever, vous préparez des scripts pour créer des tables dans la base de données. Dans le cadre de ces scripts, vous devez créer des contraintes de vérification, mais vous souhaitez suivre les normes de dénomination de l'entreprise pour les contraintes de vérification. Comment ajouteriez-vous Vérifier le nom de la contrainte dans vos scripts.

Solution :

SQL Server donne automatiquement un nom à Check Constraint si nous ne le fournissons pas. Exécutons le script ci-dessous et voyons quel nom SQL Server attribue à Check Constraint lorsque nous ne fournissons pas le nom. Dans l'exemple ci-dessous, nous créons une contrainte de vérification sur FName et nous nous assurons qu'il n'accepte que les alphabets.

--Créer une table avec une contrainte de vérification, utilisez YourDatabaseNamegoCreate table dbo.Customer(FName VARCHAR(100) Not Null, LName VARCHAR(100),StreetAddress VARCHAR(255),Vérifier (FName différent de '%[^a-z]%'))
 
 Nous pouvons utiliser les vues système pour collecter des informations relatives aux contraintes de vérification.
--Comment obtenir des contraintes de vérification dans SQL ServerSELECT * FROM INFORMATION_SCHEMA.Check_Constraints
 
 
Comment créer une contrainte de vérification dans SQL Server avec le nom par défaut
 
Disons que le nom SQL Server fourni à Check Constraint n'est pas conforme aux normes de notre entreprise. Nos normes indiquent que la contrainte de vérification doit suivre le modèle ci-dessous
Commencez par Chk_SchemaName_TableName_ColumnName_CheckConstraintDescription. Pour ajouter une contrainte de vérification, votre syntaxe sera
Constraint Constraint_Name Check LogicForCheckConstraint.

 --Create Table with Check Constraint use YourDatabaseNamegoCreate table dbo.Customer(FName VARCHAR(100) Not Null,LName VARCHAR(100),StreetAddress VARCHAR(255),Constraint Chk_dbo_Customer_FName_AlphabetsOnly Check (FName not like '%[^a-z]%'))
 
 Exécutez la requête de sélection sur la vue système pour obtenir des informations sur la contrainte de vérification. Je suggère de créer des objets avec une convention ou des normes de dénomination au lieu de laisser le serveur sql décider du nom de vos objets.
Comment créer une contrainte de vérification en fournissant un nom selon les normes de votre entreprise dans SQL Server


Démonstration vidéo :comment créer une contrainte de vérification à l'aide de la convention de dénomination dans SQL Server