Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

O que é a restrição padrão no SQL Server - Tutorial SQL Server / TSQL Parte 90

O que é Restrição Padrão no SQL Server:

A restrição padrão insere o valor padrão em uma coluna quando você não fornece valor para a coluna.
Vamos entender usando os exemplos abaixo.

Cenário:

Digamos que você precise criar uma tabela dbo.Customer com Nome, Sobrenome, Nome do País e Região. Se o usuário não fornecer os valores para Colunas de Nome do País e Região, você sempre deseja inserir Nome do País='EUA' e para Região='América do Norte'.
O script abaixo pode ser usado para criar Restrição Padrão para as colunas Nome do País e Região.

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



Agora insira alguns registros fornecendo valores para todas as colunas usando as instruções de inserção abaixo.
--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


Agora insira apenas os valores nas colunas Nome e Sobrenome. Como criamos a Restrição Padrão no Nome do País e Região, ela deve inserir automaticamente CountryName='USA' e Region='North America'.
Insert into dbo.Customer(FirstName,LastName)
Values ('John','Smith')
go

Insert into dbo.Customer(FirstName,LastName)
Values ('Christy','Ladson')
 
 
 Vamos verificar os dados na tabela dbo.Customer para garantir que nossas restrições padrão estejam funcionando conforme o esperado.
Select * from  dbo.Customer
 
Como criar uma restrição padrão no SQL Server
 Quando criamos Default Constraints, não fornecemos nenhum nome, vamos verificar quais nomes o SQL Server deu a eles usando sys.objects
--Get the Constraint Names in SQL Server
Select * from sys.objects
where type_desc='DEFAULT_CONSTRAINT'
 
Como verificar as informações de restrições padrão no SQL Server
 Se sua empresa estiver usando alguns padrões de nomenclatura e você quiser criar a restrição padrão com esses padrões, especifique o nome ao criá-los. Estou usando para usar DF_SchemaName_TableName_ColumnName para meu nome de restrição conforme mostrado abaixo.
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 executar a consulta em sys.objects mais uma vez para obter o nome de restrição padrão com o nome da tabela.
--Get the Constraint Names in SQL Server
Select name,object_name(Parent_object_id) 
as TableName from sys.objects
where type_desc='DEFAULT_CONSTRAINT'
 
Como criar uma restrição padrão com nome no SQL Server
 
Demonstração em vídeo:o que é restrição padrão no SQL Server e como criar restrição padrão