Какво е ограничение по подразбиране в 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 и как да създадете ограничение по подразбиране