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

Qu'est-ce qu'une contrainte par défaut dans SQL Server - Tutoriel SQL Server / TSQL Partie 90

Qu'est-ce que la contrainte par défaut dans SQL Server :

La contrainte par défaut insère la valeur par défaut dans une colonne lorsque vous ne fournissez pas de valeur pour la colonne.
Comprenons en utilisant les exemples ci-dessous.

Scénario :

Supposons que vous deviez créer une table dbo.Customer avec le prénom, le nom, le nom du pays et la région. Si l'utilisateur ne fournit pas les valeurs pour les colonnes de nom de pays et de région, vous souhaitez toujours insérer Country Name='USA' et pour Region='North America'.
Le script ci-dessous peut être utilisé pour créer une contrainte par défaut pour les colonnes Country Name et Region.

USE YourDatabaseNameGOCREATE TABLE dbo.Customer ( FirstName VARCHAR(50) ,LastName VARCHAR(50) ,CountryName VARCHAR(50) DEFAULT 'USA' ,Region VARCHAR(50) DEFAULT 'Amérique du Nord' )



Insérez maintenant quelques enregistrements en fournissant des valeurs pour toutes les colonnes en utilisant les instructions d'insertion ci-dessous.
--Insérez des exemples de données en fournissant CountryName et RegionInsert dans dbo .Customer (FirstName,LastName,CountryName,Region)Values('Aamir','Shahzad','Pakistan','Asia')goInsert into dbo.Customer (FirstName,LastName,CountryName,Region)Values('Sukhjeet',' Singh','Inde','Asie')go


Insérez désormais uniquement les valeurs dans les colonnes Prénom et Nom. Comme nous avons créé la contrainte par défaut sur le nom du pays et la région, elle doit automatiquement insérer CountryName='USA' et Region='North America'.
Insert into dbo.Customer(FirstName,LastName)Values ​​(' John','Smith')goInsert into dbo.Customer(FirstName,LastName)Values ​​('Christy','Ladson')
 
 
 Vérifions les données dans la table dbo.Customer pour nous assurer que nos contraintes par défaut fonctionnent comme prévu.
Sélectionnez * dans dbo.Customer
 
Comment créer une contrainte par défaut dans SQL Server
 Lorsque nous avons créé des contraintes par défaut, nous n'avons fourni aucun nom, vérifions les noms que SQL Server leur a donnés en utilisant sys.objects
--Obtenez les noms des contraintes dans SQL ServerSelect * from sys.objectswhere type_desc='DEFAULT_CONSTRAINT'
 
Comment vérifier les informations sur les contraintes par défaut dans SQL Server
 Si votre entreprise utilise certaines normes de dénomination et que vous souhaitez créer la contrainte par défaut avec ces normes, vous pouvez spécifier le nom lors de leur création. J'utilise pour utiliser DF_SchemaName_TableName_ColumnName pour mon nom de contrainte comme indiqué ci-dessous.
utiliser YourDatabaseNameGoCreate Table dbo.tblCustomer(FirstName VARCHAR(50),LastName VARCHAR(50),CountryName VARCHAR(50) Constraint DF_dbo_tblCustomer_CountryName Default 'USA ' ,Région VARCHAR(50) Contrainte DF_dbo_tblCustomer_Region par défaut 'Amérique du Nord')
 
Exécutons la requête sur sys.objects une fois de plus pour obtenir le nom de la contrainte par défaut avec le nom de la table.
--Obtenir les noms de contrainte dans SQL ServerSelect name,object_name(Parent_object_id) as TableName from sys .objectswhere type_desc='DEFAULT_CONSTRAINT'
 
Comment créer une contrainte par défaut avec un nom dans SQL Server
 
Démonstration vidéo :Qu'est-ce qu'une contrainte par défaut dans SQL Server et comment créer une contrainte par défaut