ルール

ルールは以前のバージョンとの互換性を保つための機能であり、CHECK 制約と同じ機能がいくつか備わっています。ただし、列の値を制限する方法としては、CHECK 制約の方が望ましく標準的です。また、CHECK 制約の方がルールよりも簡潔です。1 つの列に適用できるルールは 1 つだけですが、CHECK 制約なら複数適用できます。CHECK 制約は CREATE TABLE ステートメントの一部として指定されますが、ルールは別個のオブジェクトとして作成され、列にバインドされます。

ms187615.note(ja-jp,SQL.90).gif重要 :
この機能は、将来のバージョンの 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

参照

その他の技術情報

CREATE RULE (Transact-SQL)
CREATE TABLE (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手