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

Comment créer une contrainte non nulle sur une colonne dans une table SQL Server - Tutoriel SQL Server / T-SQL, partie 51

Scénario :

Vous créez une table client pour l'un de vos besoins, vous voulez vous assurer que la colonne Prénom a toujours la valeur. Comment vous assurerez-vous que la colonne du prénom contient toujours la valeur ?


Solution :

Les contraintes définissent des règles qui garantissent que les données que nous insérons dans la colonne respectent les règles.
Pour l'exigence ci-dessus, nous pouvons créer une contrainte Not Null sur une colonne, Not Null Constraint assurez-vous que la valeur insérée dans cette colonne n'est pas Null. Si l'utilisateur essaie d'insérer une ligne sans fournir la valeur de la colonne sur laquelle nous avons créé la contrainte non nulle, l'insertion échouera car la colonne ne peut pas accepter les valeurs nulles.

Pour créer une contrainte non nulle sur Colonne dans une table, nous devons ajouter Not Null après le type de données comme indiqué ci-dessous pour la colonne First Name.

Create Table Customer(FirstName VARCHAR(50) Not Null,LastName VARCHAR(50 ), Age SmallInt, PhoneNumber CHAR(9), Date de naissance, Sexe CHAR(1))
 Vous pouvez voir que je n'ai pas fourni de contrainte non nulle pour les autres colonnes, ce qui signifie que ces colonnes peuvent accepter des valeurs nulles ou des valeurs inconnues.

Insérons les lignes ci-dessous et voyons ce qui se passe

insert into dbo.Customer ( FirstName,LastName,Age,PhoneNumber,DOB,Sexe)Values('Aamir','Shahzad',Null,Null,Null,Null),(Null,'Raza',33, '00000000',Null,'M')
 Comme vous pouvez voir que la transaction a échoué car nous ne pouvons pas insérer la colonne Null dans le prénom, aucun enregistrement ne sera inséré.


Comment créer une contrainte non nulle sur une colonne dans SQL Server - Tutoriel TSQL
Considérons la deuxième insertion , Où nous n'insérons rien dans la colonne Prénom. L'insertion échouera toujours, car lorsque vous ne fournissez pas la colonne dans la liste d'insertion, elle essaie d'insérer une valeur nulle pour cette colonne et nous avons créé une contrainte non nulle sur la colonne du prénom.


insert into dbo.Customer (LastName,Age,PhoneNumber,DOB,Gender)Values('Raza',33,'00000000','2016-01-26','M')
 
 Comment créer une contrainte non nulle dans SQL Server - Tutoriel SQL Server / TSQL