sql >> Databáze >  >> RDS >> Sqlserver

Co je výchozí omezení v SQL Server - SQL Server / TSQL výukový program, část 90

Co je výchozí omezení na serveru SQL:

Výchozí omezení vloží výchozí hodnotu do sloupce, pokud nezadáte hodnotu pro sloupec.
Pojďme to pochopit pomocí níže uvedených příkladů.

Scénář:

Řekněme, že potřebujete vytvořit tabulku dbo.Customer s křestním jménem, ​​příjmením, názvem země a regionem. Pokud uživatel nezadá hodnoty pro sloupce Country Name a Region, vždy chcete vložit Country Name='USA' a pro Region='Severní Amerika'.
Níže uvedený skript lze použít k vytvoření výchozího omezení pro sloupce Název země a Oblast.

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



Nyní vložte několik záznamů zadáním hodnot pro všechny sloupce pomocí níže uvedených příkazů vložení.
--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


Nyní vložte pouze hodnoty do sloupců Jméno a Příjmení. Protože jsme vytvořili výchozí omezení pro název země a region, mělo by se automaticky vložit CountryName='USA' a Region='Severní Amerika'.
Insert into dbo.Customer(FirstName,LastName)
Values ('John','Smith')
go

Insert into dbo.Customer(FirstName,LastName)
Values ('Christy','Ladson')
 
 
 Pojďme zkontrolovat data v tabulce dbo.Customer, abychom se ujistili, že naše výchozí omezení fungují podle očekávání.
Select * from  dbo.Customer
 
Jak vytvořit výchozí omezení v SQL Server
 Když jsme vytvořili výchozí omezení, nezadali jsme žádný název, pojďme zkontrolovat, jaké názvy jim SQL Server přidělil pomocí sys.objects
--Get the Constraint Names in SQL Server
Select * from sys.objects
where type_desc='DEFAULT_CONSTRAINT'
 
Jak zkontrolovat informace o výchozích omezeních na serveru SQL Server
 Pokud vaše společnost používá některé standardy pojmenování a chtěli byste s těmito standardy vytvořit výchozí omezení, můžete název zadat při jejich vytváření. Používám k použití DF_SchemaName_TableName_ColumnName pro můj název omezení, jak je znázorněno níže.
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')
 
Pojďme spustit dotaz na sys.objects ještě jednou, abychom získali výchozí název omezení s názvem tabulky.
--Get the Constraint Names in SQL Server
Select name,object_name(Parent_object_id) 
as TableName from sys.objects
where type_desc='DEFAULT_CONSTRAINT'
 
Jak vytvořit výchozí omezení s názvem na serveru SQL
 
Video ukázka:Co je výchozí omezení v SQL Server a jak vytvořit výchozí omezení






  1. UUID nebo SEQUENCE pro primární klíč?

  2. neplatný vzor názvu při pokusu o předání vlastního mapování objektů typu Oracle

  3. Ověřování SQL Server vs. ověřování Windows:Které použít a kdy

  4. Kdy se pro aktualizaci vybere zámek a odemknutí?