Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come creare un vincolo non nullo su una colonna nella tabella di SQL Server - Tutorial di SQL Server / T-SQL Parte 51

Scenario:

Stai creando una tabella cliente per uno dei tuoi requisiti, vuoi assicurarti che la colonna Nome abbia sempre il valore. In che modo ti assicurerai che la colonna del nome abbia sempre il valore?


Soluzione:

I vincoli definiscono le regole che assicurano che i dati che inseriamo nella colonna seguano le regole.
Per i requisiti precedenti possiamo creare un vincolo Not Null su una colonna, Not Null Constraint assicurarsi che il valore inserito in quella colonna non sia Null. Se l'utente tenterà di inserire una riga senza fornire il valore per la colonna su cui è stato creato il vincolo Not Null, l'inserimento avrà esito negativo poiché la colonna non può accettare valori Null.

Per creare un vincolo Not Null su Colonna in una tabella, dobbiamo aggiungere non null dopo il tipo di dati come mostrato di seguito per la colonna del nome.

Create Table Customer
(FirstName VARCHAR(50) Not Null,
LastName VARCHAR(50),
Age SmallInt,
PhoneNumber CHAR(9),
DOB Date,
Gender CHAR(1)
)
 Puoi vedere che non ho fornito Vincolo non nullo per altre colonne, ciò significa che quelle colonne possono accettare valori Null o Valore sconosciuto.

Inseriamo sotto le righe e vediamo cosa succede

insert into dbo.Customer ( FirstName,LastName,Age,PhoneNumber,DOB,Gender)
Values
('Aamir','Shahzad',Null,Null,Null,Null)
,(Null,'Raza',33,'00000000',Null,'M')
 Come puoi vedere che la transazione non è andata a buon fine poiché non possiamo inserire il Null nella colonna Nome, verrà inserito Nessun record.


Come creare un vincolo non nullo su una colonna in SQL Server - Tutorial TSQL
Consideriamo il secondo inserimento , Dove non stiamo inserendo nulla nella colonna Nome. Tuttavia l'inserimento fallirà, poiché quando non fornisci la colonna nell'elenco di inserimento, tenta di inserire il valore Null per quella colonna e abbiamo creato Vincolo non nullo sulla colonna Nome.


insert into dbo.Customer (LastName,Age,PhoneNumber,DOB,Gender)
Values
('Raza',33,'00000000','2016-01-26','M')
 
 Come creare vincoli non nulli in SQL Server - Tutorial SQL Server/TSQL