SQL Server は現在 CHECK のサブクエリをサポートしていません制約 .
お気づきのとおり、CHECK 制約の問題 サブクエリの制限を回避しようとするときに UDF を使用します。
代替の制約実装戦略は、トリガーされた手続き型です。 および組み込み手続き型 .前者は、宣言的制約と同様に回避できないため、優先されます。
十分に最適化され、並行性の問題を処理するトリガーされた手続き型戦略を実装することは簡単ではありませんが、それでも実行可能です。 データベース プロフェッショナルのための応用数学 Lex de Haan, Toon Koppelaars 著 、第 11 章 (コード例は Oracle ですが、SQL Server に簡単に移植できます)。