ルール

ルールは以前のバージョンとの互換性を保つための機能であり、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