sql >> データベース >  >> RDS >> Sqlserver

SQLServerのデフォルトの制約とは-SQLServer/TSQLチュートリアルパート90

    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でデフォルトの制約を作成する方法
     デフォルトの制約を作成したとき、名前を指定しませんでした。sys.objectsを使用してSQLServerが付けた名前を確認しましょう。
    --Get the Constraint Names in SQL Server
    Select * from sys.objects
    where type_desc='DEFAULT_CONSTRAINT'
     
    SQLServerでデフォルトの制約情報を確認する方法
     会社でいくつかの命名基準を使用していて、それらの基準でデフォルトの制約を作成したい場合は、作成時に名前を指定できます。以下に示すように、制約名に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'
     
    SQLServerで名前を使用してデフォルトの制約を作成する方法
     
    ビデオデモ:SQLServerのデフォルトの制約とは何ですか。デフォルトの制約を作成する方法






    1. PL-SQLのcontains()はどのように機能しますか?

    2. SQL ServerでのACOS()の例

    3. SQL Server ServerManagementStudioを使用したデータベースのインポート/エクスポート

    4. SQLバディ–WebベースのMySQL管理ツール