方法 : CHECK 制約式を定義する
テーブルまたは列に CHECK 制約を適用するときは、Transact-SQL 式を含める必要があります。この操作の詳細については、「方法 : テーブルまたは列に新しい CHECK 制約を適用する」を参照してください。
データが単一の条件を満たすかどうかを確認するには単一の制約式を作成し、データが複数の条件を満たすかどうかを確認するにはブール型の演算子を使用した複合式を作成できます。たとえば、authors テーブルに、5 桁の文字列を必要とする zip 列が存在すると仮定します。次の制約式のサンプルは、5 桁の数値だけを許可します。
zip LIKE '[0-9][0-9][0-9][0-9][0-9]'
また、sales テーブルに、0 より大きい値を必要とする qty という列があるとします。次の制約のサンプルでは、正の値だけを許可します。
qty > 0
[!メモ]
CHECK 制約に対して異なる機能を持つデータベースもあります。データベースで処理される CHECK 制約の詳細については、データベースのマニュアルを参照してください。
[!メモ]
お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。
制約式を定義するには
新しい CHECK 制約を作成します。その方法の詳細については、「方法 : テーブルまたは列に新しい CHECK 制約を適用する」を参照してください。
[制約のチェック] ダイアログ ボックスで、次の構文を使用して [制約式の確認] ダイアログ ボックスに式を入力します。
{constant column_name function (subquery)} [{operator AND OR NOT} {constant column_name function (subquery)}]
[!メモ]
これは、Microsoft SQL Server に固有の構文です。詳細については、データベースのマニュアルを参照してください。
Transact-SQL 構文は、次のパラメーターで構成されています。
パラメーター
Description
constant
数値データ、文字データなどのリテラル値です。文字データは単一引用符 (') で囲む必要があります。
column_name
列を指定します。
function
組み込み関数です。関数の詳細については、SQL Server のドキュメントを参照してください。
operator
算術演算子、ビット処理演算子、比較演算子、または文字列演算子です。演算子の詳細については、SQL Server のドキュメントを参照してください。
AND
ブール式で 2 つの式を結合するときに使用します。両方の式が true のとき、結果が返されます。
1 つのステートメントで AND と OR が使用されているときは、AND が先に処理されます。実行順序を変更するには、かっこを使います。
OR
ブール式で 2 つ以上の条件を結合するときに使用します。どちらかの条件が true のとき、結果が返されます。
1 つのステートメントで AND と OR が使用されているときは、OR は AND の後に処理されます。実行順序を変更するには、かっこを使います。
NOT
LIKE、NULL、BETWEEN、IN、EXISTS などのキーワードを含むすべてのブール式を無効にします。
1 つのステートメントで複数の論理演算子が使用されているときは、NOT が先に処理されます。実行順序を変更するには、かっこを使います。