sql >> Base de Datos >  >> RDS >> Sqlserver

Cómo crear una restricción de verificación en una sola columna en SQL Server - Tutorial de SQL Server/TSQL, parte 83

Escenario:

Está trabajando como desarrollador de SQL Server, está preparando scripts para crear tablas en la base de datos. Como parte de estos scripts, debe crear Restricciones de verificación, pero desea seguir los estándares de nomenclatura de la empresa para Restricciones de verificación. ¿Cómo agregaría Verificar nombre de restricción en sus scripts?

Solución:

SQL Server asigna automáticamente un nombre a la restricción de verificación si no lo proporcionamos. Ejecutemos el siguiente script y veamos qué nombre asigna SQL Server a Verificar restricción cuando no proporcionamos el nombre. En el siguiente ejemplo, estamos creando Verificar restricción en FName y asegurarnos de que solo acepte alfabetos.

--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]%')
)
 
 Podemos usar vistas del sistema para recopilar información relacionada con las restricciones de verificación.
--How to get Check Constraints in SQL Server
SELECT
    * 
    FROM INFORMATION_SCHEMA.Check_Constraints
 
 
Cómo crear una restricción de verificación en SQL Server con un nombre predeterminado
 
Digamos que el nombre de SQL Server proporcionado a Check Constraint no está de acuerdo con los estándares de nuestra empresa. Nuestros estándares dicen que la restricción de verificación debe seguir el siguiente patrón
Comience con Chk_SchemaName_TableName_ColumnName_CheckConstraintDescription. Para agregar una restricción de verificación, su sintaxis será
Restricción Nombre_restricción Verificar 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]%')
)
 
 Ejecute la consulta de selección en la vista del sistema para obtener información sobre la restricción de verificación. Sugiero crear objetos con alguna convención de nomenclatura o estándares en lugar de dejar que el servidor sql decida el nombre de sus objetos.
Cómo crear una restricción de verificación proporcionando un nombre de acuerdo con los estándares de su empresa en SQL Server


Demostración en video:Cómo crear una restricción de verificación usando la convención de nomenclatura en SQL Server