3
CLRを使用せずにデータベースレベルの定数(列挙)を作成しますか?
要求の望ましい状態に基づいて代替アクションを実行する必要があるいくつかのSQLオブジェクトがあります。ストアドプロシージャ、テーブル値関数に渡し、クエリで使用できる(CLRを使用せずに)データベースレベルの定数(列挙)を作成する方法はありますか? CREATE PROCEDURE dbo.DoSomeWork(@param1 INTEGER, ..., @EnumValue myEnumType) AS ...; そしてそれを使います: EXEC doSomeWork 85, ..., (myEnumType.EnumValue1 + myEnumType.EnumValue2); myEnumTypeいくつかの列挙値を保持する場所。 手順では、必要な作業を実行するために、@EnumValue値を使用してテストすることができますmyEnumType。私がmyEnumType検討しているケースでは、ビットマスクの値を作成します。 簡単な例として、巨大なデータセットを受け取り、それをより小さくても非常に大きなデータセットに削減する高価なプロセスを考えてみます。このプロセスでは、そのプロセスの途中で、結果に影響を与える調整を行う必要があります。これは、削減内の中間計算のステータスに基づいて、特定のタイプのレコードをフィルターする(またはフィルターする)とします。@EnumValueタイプのはmyEnumType、このために、テストに使用することができ SELECT ... FROM ... WHERE (@EnumValue & myEnumType.EnumValue1 = myEnumType.EnumValue1 AND ...) OR (@EnumValue & myEnumType.EnumValue2 = myEnumType.EnumValue2 AND ...) OR ... CLRを使用せずに、SQL Serverでこのようなデータベースレベルの定数を使用できますか? ストアドプロシージャや関数などにパラメーターとして渡すことができるデータベースレベルの列挙または定数のセットを探しています。