次の方法で共有


Check 制約を作成する

SQL Server Management Studio または Transact-SQL を使用して、SQL Server 2014 の 1 つ以上の列で許容されるデータ値を指定するチェック制約をテーブルに作成できます。

このトピックについて

開始する前に

安全

権限

テーブルに対する ALTER 権限が必要です。

SQL Server Management Studio の使用

新しいチェック制約を作成するには

  1. オブジェクト エクスプローラーで、チェック制約を追加するテーブルを展開し、[制約]を右クリックして、[新しい制約]をクリックします。

  2. [ 制約のチェック ] ダイアログ ボックスで、[ ] フィールドをクリックし、省略記号 (...) をクリックします。

  3. [CHECK 制約式] ダイアログ ボックスで、CHECK 制約の SQL 式を入力します。 たとえば、Product テーブルのSellEndDate列のエントリを、SellStartDate列の日付以上の値または NULL 値に制限するには、次のように入力します。

    SellEndDate >= SellStartDate OR SellEndDate IS NULL  
    

    または、 zip 列のエントリを 5 桁にする必要がある場合は、次のように入力します。

    zip LIKE '[0-9][0-9][0-9][0-9][0-9]'  
    

    数値以外の制約値は、必ず単一引用符 (') で囲んでください。

  4. OK をクリックします。

  5. [ID] カテゴリでは、CHECK 制約の名前を変更し、制約の説明 (拡張プロパティ) を追加できます。

  6. テーブル デザイナー のカテゴリでは、制約が適用されるタイミングを設定できます。

    宛先: 次のフィールドで [はい] を選択します。
    制約を作成する前に既に存在していたデータで制約をテストする [作成または有効化するときに既存データを確認]
    このテーブルでレプリケーション操作が発生するたびに制約を適用する [レプリケーションに対して適用]
    このテーブルの行を挿入または更新するたびに制約を適用する [INSERT および UPDATE に適用]
  7. をクリックしてを閉じます。

Transact-SQL の使用

新しいチェック制約を作成するには

  1. オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。

  2. 標準バーで [新しいクエリ] をクリックします。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。

    ALTER TABLE dbo.DocExc   
       ADD ColumnD int NULL   
       CONSTRAINT CHK_ColumnD_DocExc   
       CHECK (ColumnD > 10 AND ColumnD < 50);  
    GO  
    -- Adding values that will pass the check constraint  
    INSERT INTO dbo.DocExc (ColumnD) VALUES (49);  
    GO  
    -- Adding values that will fail the check constraint  
    INSERT INTO dbo.DocExc (ColumnD) VALUES (55);  
    GO  
    
    

詳細については、ALTER TABLE (Transact-SQL)を参照してください。