Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So erstellen Sie eine Nicht-Null-Einschränkung für eine Spalte in einer SQL Server-Tabelle – SQL Server / T-SQL-Tutorial Teil 51

Szenario:

Sie erstellen eine Kundentabelle für eine Ihrer Anforderungen und möchten sicherstellen, dass die Spalte „Vorname“ immer den Wert enthält. Wie stellen Sie sicher, dass die Spalte Vorname immer den Wert hat?


Lösung:

Einschränkungen definieren Regeln, die sicherstellen, dass die Daten, die wir in die Spalte einfügen, den Regeln entsprechen.
Für die obige Anforderung können wir eine Nicht-Null-Einschränkung für eine Spalte erstellen. Die Nicht-Null-Einschränkung stellt sicher, dass der in diese Spalte eingefügte Wert nicht Null ist. Wenn der Benutzer versucht, eine Zeile einzufügen, ohne den Wert für die Spalte anzugeben, für die wir die Not Null-Einschränkung erstellt haben, schlägt die Einfügung fehl, da die Spalte keine Nullwerte akzeptieren kann.

So erstellen Sie eine Not Null-Einschränkung für Spalte in einer Tabelle müssen wir Not Null nach dem Datentyp hinzufügen, wie unten für die Spalte Vorname gezeigt.

Create Table Customer
(FirstName VARCHAR(50) Not Null,
LastName VARCHAR(50),
Age SmallInt,
PhoneNumber CHAR(9),
DOB Date,
Gender CHAR(1)
)
 Sie können sehen, dass ich für andere Spalten keine Not Null Constraint angegeben habe, das heißt, diese Spalte kann Nullwerte oder unbekannte Werte akzeptieren.

Lassen Sie uns die folgenden Zeilen einfügen und sehen, was passiert

insert into dbo.Customer ( FirstName,LastName,Age,PhoneNumber,DOB,Gender)
Values
('Aamir','Shahzad',Null,Null,Null,Null)
,(Null,'Raza',33,'00000000',Null,'M')
 Wie Sie sehen können, ist die Transaktion fehlgeschlagen, da wir keine Null in die Spalte „Vorname“ einfügen können. Es wird kein Datensatz eingefügt.


So erstellen Sie eine Nicht-Null-Einschränkung für eine Spalte in SQL Server – TSQL-Lernprogramm
Betrachten wir die zweite Einfügung , Wo wir nichts in die Spalte Vorname einfügen. Das Einfügen wird dennoch fehlschlagen, da, wenn Sie die Spalte nicht in der Einfügeliste angeben, versucht wird, einen Nullwert für diese Spalte einzufügen, und wir haben eine Nicht-Null-Einschränkung für die Spalte Vorname erstellt.


insert into dbo.Customer (LastName,Age,PhoneNumber,DOB,Gender)
Values
('Raza',33,'00000000','2016-01-26','M')
 
 So erstellen Sie eine Nicht-Null-Einschränkung in SQL Server – SQL Server / TSQL-Tutorial