ルールがおそらく副業を取っている理由の 1 つは、ルールでは列ごとに 1 つしか持つことができず、データベースに入るデータのみをチェックすることです。つまり、データベースに既に存在するデータをチェックしません。チェック制約を使用すると、特定の列に複数の制約を設定でき、すべてのデータ (入力されるデータとデータベースに既に存在するデータ) に適用されます。規則がチェック制約に対する貧弱な解決策のように思われることを考えると、Microsoft はおそらくそれらを取り除く時が来たことに最終的に気付いたでしょう。加えて、規則は SQL 標準ではありません。
チェック制約がうまくいかない場合は、トリガーを使用してより複雑なロジックを検討することもできます。