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