Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Какво е ограничение по подразбиране в SQL Server - SQL Server / TSQL урок, част 90

Какво е ограничение по подразбиране в SQL Server:

Ограничение по подразбиране вмъква стойността по подразбиране в колона, когато не предоставите стойност за колона.
Нека разберем, като използваме примери по-долу.

Сценарий:

Да приемем, че трябва да създадете таблица dbo.Customer с име, фамилия, име на държава и регион. Ако потребителят не предостави стойностите за колони Име на държава и регион, винаги искате да вмъкнете Име на държава='САЩ' и за Регион='Северна Америка'.
Скриптът по-долу може да се използва за създаване на ограничение по подразбиране за колони с име на държава и регион.

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



Сега вмъкнете няколко записа, като предоставите стойности за всички колони, като използвате изрази за вмъкване по-долу.
--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


Сега вмъквайте стойностите само в колоните Име и Фамилия. Тъй като създадохме ограничението по подразбиране за името на държавата и региона, то трябва автоматично да вмъкне CountryName='USA' и Region='North America'.
Insert into dbo.Customer(FirstName,LastName)
Values ('John','Smith')
go

Insert into dbo.Customer(FirstName,LastName)
Values ('Christy','Ladson')
 
 
 Нека проверим данните в таблицата dbo.Customer, за да се уверим, че нашите ограничения по подразбиране работят според очакванията.
Select * from  dbo.Customer
 
Как да създадете ограничение по подразбиране в SQL Server
 Когато създадохме ограничения по подразбиране, не предоставихме никакво име, нека проверим какви имена им е дал SQL Server, като използваме sys.objects
--Get the Constraint Names in SQL Server
Select * from sys.objects
where type_desc='DEFAULT_CONSTRAINT'
 
Как да проверите информацията за ограниченията по подразбиране в SQL Server
 Ако вашата компания използва някои стандарти за именуване и искате да създадете ограничение по подразбиране с тези стандарти, можете да посочите името, докато ги създавате. Използвам да използвам DF_SchemaName_TableName_ColumnName за името на моето ограничение, както е показано по-долу.
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')
 
Нека стартираме заявката върху sys.objects още веднъж, за да получим име на ограничение по подразбиране с име на таблица.
--Get the Constraint Names in SQL Server
Select name,object_name(Parent_object_id) 
as TableName from sys.objects
where type_desc='DEFAULT_CONSTRAINT'
 
Как да създадете ограничение по подразбиране с име в SQL Server
 
Видео демонстрация:Какво е ограничение по подразбиране в SQL Server и как да създадете ограничение по подразбиране






  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 Spatial:намерете точка в многоъгълник

  2. SQL Server:Открийте стойността по подразбиране на колона със заявка

  3. Как да прочетете последния ред с SQL Server

  4. Принудително изчакване на заявка в SQL Server

  5. Как да видите историята на заявките в SQL Server Management Studio