SQL Serverのデフォルトの制約とは:
Default Constraintは、columnに値を指定しない場合、デフォルト値を列に挿入します。以下の例を使って理解しましょう。
シナリオ:
名、姓、国名、地域を含むdbo.Customerテーブルを作成する必要があるとします。ユーザーが国名と地域の列の値を指定しない場合は、常に国名='USA'および地域='北アメリカ'を挿入する必要があります。以下のスクリプトを使用して、国名と地域の列のデフォルトの制約を作成できます。
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='NorthAmerica'を自動的に挿入する必要があります。
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
SQLServerでデフォルトの制約を作成する方法 |
--Get the Constraint Names in SQL Server Select * from sys.objects where type_desc='DEFAULT_CONSTRAINT'
SQLServerでデフォルトの制約情報を確認する方法 |
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'
SQLServerで名前を使用してデフォルトの制約を作成する方法 |
ビデオデモ:SQLServerのデフォルトの制約とは何ですか。デフォルトの制約を作成する方法