UDTを作成しています:
CREATE TYPE [dbo].[Code]
FROM VARCHAR(20) NOT NULL
RULESとDEFAULTSは非推奨と見なされているため、このタイプから定義された列に特定の文字のみが含まれるように、タイプに制約を設定するための推奨される方法は何ですか?
現在、この種のロジックを真に集中化/カプセル化する唯一の方法(これは、あなたがやろうとしていることだと思います)は、CLRタイプを使用することです。このソリューションが2005年以降で機能することは朗報です。
1つの代替方法は、検証ロジックをUDFに一元化し、UDFを参照する個別のチェック制約を作成することです。まだCLRを使用していない場合は、これが最善の解決策になる可能性があります。
CREATE TYPE
は非常に制限されています。システムタイプを参照する場合、それは単なるタイプエイリアスであり、それ以上のものではありません。たとえば、型自体に関連付けられているチェック制約(または同様のもの)を宣言すると便利ですが、これは現在実装されていません。