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

Come creare un vincolo di controllo su una singola colonna in SQL Server - Tutorial SQL Server / TSQL Parte 83

Scenario:

Stai lavorando come sviluppatore SQL Server, stai preparando script per creare tabelle nel database. Come parte di questi script è necessario creare Check Constraints ma si desidera seguire gli standard di denominazione dell'azienda per Check Constraints. Come aggiungeresti Check Constraint Name nei tuoi script.

Soluzione:

SQL Server assegna automaticamente il nome a Check Constraint se non lo forniamo. Eseguiamo lo script seguente e vediamo quale nome SQL Server assegna a Check Constraint quando non forniamo il nome. Nell'esempio seguente stiamo creando Check Constraint su FName e assicurandoci che accetti solo alfabeti.

--Create Table with Check Constraint
use YourDatabaseName
go
Create table dbo.Customer
(
FName VARCHAR(100) Not Null,
LName VARCHAR(100),
StreetAddress VARCHAR(255),
Check (FName not like '%[^a-z]%')
)
 
 Possiamo utilizzare le viste di sistema per raccogliere informazioni relative a Check Constraints.
--How to get Check Constraints in SQL Server
SELECT
    * 
    FROM INFORMATION_SCHEMA.Check_Constraints
 
 
Come creare un vincolo di controllo in SQL Server con il nome predefinito
 
Diciamo che il nome SQL Server fornito a Check Constraint non è conforme ai nostri standard aziendali. I nostri standard dicono che il Check Constraint dovrebbe seguire il modello seguente
Inizia con Chk_SchemaName_TableName_ColumnName_CheckConstraintDescription. Per aggiungere un vincolo di controllo , la tua sintassi sarà
Constraint Constraint_Name Verifica LogicForCheckConstraint.

 --Create Table with Check Constraint 
use YourDatabaseName
go
Create 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]%')
)
 
 Eseguire la query di selezione nella vista di sistema per ottenere le informazioni sui vincoli di controllo. Suggerisco di creare oggetti con qualche convenzione o standard di denominazione invece di lasciare che il server sql decida il nome per i tuoi oggetti.
Come creare un vincolo di controllo fornendo un nome in base agli standard della tua azienda in SQL Server


Video demo:come creare vincoli di controllo utilizzando la convenzione di denominazione in SQL Server