ルール
ルールは以前のバージョンとの互換性を保つための機能であり、CHECK 制約と同じ機能がいくつか備わっています。ただし、列の値を制限する方法としては、CHECK 制約の方が望ましく標準的です。また、CHECK 制約の方がルールよりも簡潔です。1 つの列に適用できるルールは 1 つだけですが、CHECK 制約なら複数適用できます。CHECK 制約は CREATE TABLE ステートメントの一部として指定されますが、ルールは別個のオブジェクトとして作成され、列にバインドされます。
重要 |
---|
この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。 新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。代わりに、CHECK 制約を使用してください。詳細については、「制約」を参照してください。 |
次の例では、指定した範囲内のメンバのみを指定するルールを作成します。このルールはテーブルの列にバインドされます。
CREATE RULE id_chk AS @id BETWEEN 0 and 10000;
GO
CREATE TABLE cust_sample
(
cust_id int
PRIMARY KEY,
cust_name char(50),
cust_address char(50),
cust_credit_limit money,
);
GO
sp_bindrule id_chk, 'cust_sample.cust_id';
GO