CHECK 制約の作成
テーブルにチェック制約を作成し、SQL Server Management Studioまたは Transact-SQL を使用して、SQL Server 2014 の 1 つ以上の列で許容されるデータ値を指定できます。
このトピックの内容
作業を開始する準備:
新しい CHECK 制約を作成する方法:
はじめに
セキュリティ
アクセス許可
テーブルに対する ALTER 権限が必要です。
SQL Server Management Studio を使用する
新しい CHECK 制約を作成するには
オブジェクト エクスプローラーで、CHECK 制約を追加するテーブルを展開し、 [制約] を右クリックして、 [新しい制約]をクリックします。
[CHECK 制約] ダイアログ ボックスで、[式] フィールドをクリックして、省略記号 [...] をクリックします。
[CHECK 制約式] ダイアログ ボックスで、CHECK 制約の SQL 式を入力します。 たとえば、
SellEndDate
テーブルのProduct
列への入力をSellStartDate
列の日付と同じか、それよりも後の日付の値または NULL 値に限定するには、次のように入力します。SellEndDate >= SellStartDate OR SellEndDate IS NULL
また、
zip
列への入力を 5 桁の数値に限定するには、次のように入力します。zip LIKE '[0-9][0-9][0-9][0-9][0-9]'
注意
数値以外の制約値は、必ず単一引用符 (') で囲んでください。
[OK] をクリックします。
[ID] カテゴリでは、CHECK 制約の名前を変更し、制約の説明 (拡張プロパティ) を追加できます。
テーブル デザイナー のカテゴリでは、制約が適用されるタイミングを設定できます。
次のように変更します。 [はい] を選択するフィールド: 制約を作成する前に既に存在していたデータで制約をテストする [作成または有効化するときに既存データを確認] このテーブルでレプリケーション操作が発生するたびに制約を適用する [レプリケーションに対して適用] このテーブルの行を挿入または更新するたびに制約を適用する [INSERT および UPDATE に適用] [閉じる] をクリックします。
Transact-SQL の使用
新しい CHECK 制約を作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。
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)」を参照してください。