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

¿Qué es la restricción predeterminada en SQL Server? Tutorial de SQL Server/TSQL, parte 90

¿Qué es la restricción predeterminada en SQL Server:

Restricción predeterminada inserta el valor predeterminado en una columna cuando no proporciona un valor para la columna.
Entendamos usando los siguientes ejemplos.

Escenario:

Digamos que necesita crear una tabla dbo.Customer con Nombre, Apellido, Nombre del país y Región. Si el usuario no proporciona los valores para las columnas de nombre de país y región, siempre querrá insertar el nombre de país ='EE. UU.' y para la región ='Norteamérica'.
La siguiente secuencia de comandos se puede usar para crear una restricción predeterminada para las columnas de nombre de país y región.

USE YourDatabaseName
GO
CREATE TABLE dbo.Customer (
    FirstName VARCHAR(50)
    ,LastName VARCHAR(50)
    ,CountryName VARCHAR(50) DEFAULT 'USA'
    ,Region VARCHAR(50) DEFAULT 'North America'
    )



Ahora inserte un par de registros proporcionando valores para todas las columnas usando las declaraciones de inserción a continuación.
--Insert some sample data by provided CountryName and Region
Insert into dbo.Customer (FirstName,LastName,CountryName,Region)
Values('Aamir','Shahzad','Pakistan','Asia')
go
Insert into dbo.Customer (FirstName,LastName,CountryName,Region)
Values('Sukhjeet','Singh','India','Asia')
go


Ahora solo inserte los valores en las columnas Nombre y Apellido. Como hemos creado la restricción predeterminada en el nombre del país y la región, debería insertar automáticamente CountryName='USA' y Region='North America'.
Insert into dbo.Customer(FirstName,LastName)
Values ('John','Smith')
go

Insert into dbo.Customer(FirstName,LastName)
Values ('Christy','Ladson')
 
 
 Verifiquemos los datos en la tabla dbo.Customer para asegurarnos de que nuestras Restricciones predeterminadas funcionan como se espera.
Select * from  dbo.Customer
 
Cómo crear una restricción predeterminada en SQL Server
 Cuando creamos restricciones predeterminadas, no proporcionamos ningún nombre, veamos qué nombres les ha dado SQL Server usando sys.objects
--Get the Constraint Names in SQL Server
Select * from sys.objects
where type_desc='DEFAULT_CONSTRAINT'
 
Cómo verificar la información de restricciones predeterminadas en SQL Server
 Si su empresa utiliza algunos estándares de nomenclatura y desea crear la restricción predeterminada con esos estándares, puede especificar el nombre al crearlos. Estoy usando DF_SchemaName_TableName_ColumnName para mi nombre de restricción como se muestra a continuación.
use YourDatabaseName
Go
Create Table dbo.tblCustomer
(
FirstName VARCHAR(50),
LastName VARCHAR(50),
CountryName VARCHAR(50) Constraint DF_dbo_tblCustomer_CountryName Default  'USA' ,
Region VARCHAR(50) Constraint  DF_dbo_tblCustomer_Region default 'North America')
 
Vamos a ejecutar la consulta en sys.objects una vez más para obtener el nombre de la restricción predeterminada con el nombre de la tabla.
--Get the Constraint Names in SQL Server
Select name,object_name(Parent_object_id) 
as TableName from sys.objects
where type_desc='DEFAULT_CONSTRAINT'
 
Cómo crear una restricción predeterminada con nombre en SQL Server
 
Video de demostración:¿Qué es la restricción predeterminada en SQL Server y cómo crear una restricción predeterminada?