1

SQL Server 2008 R2 は、.NET モジュールをデータベースに登録し、SQL ストアド プロシージャ、関数、トリガーを介して呼び出すことができる CLR 統合をサポートしています。そのような .NET モジュールを開発し、SQL Server と統合することができます。

ただし、(任意の SQL クライアントから) SQL Server に送信される SELECT クエリをインターセプトし、.NET モジュールを呼び出してクエリ パラメーター (WHERE 句) を渡す必要があるという別の要件があります。

たとえば、VarID (string) と Value (float) の 2 つの列を持つデータベースにテーブル (VarInfo) があるとします。ここで、VarID が V001 から V100 の 100 個の変数のレコードがテーブルに含まれているとします。ただし、値列はすべてのレコードで空です。値のデータはデータベースに保存されません。SQL 選択クエリがある場合:

SELECT Value from VarInfo where VarID = 'V001'

次に、SQL Server は .NET モジュールを呼び出して、VarID を渡す必要があります。.NET モジュールは、外部ソースから変数 Value を取得します。次に、Value を SQL Server に返します。SQL Server は、その値をクエリの出力/結果として返す必要があります。

SQL Server 2008 R2 での上記の実現可能性について教えてください。

ありがとう、

4

1 に答える 1

1

あなたが得ることができる最も近いものはCLRユーザー定義関数です-しかし、呼び出し元のコードはそれがUDFであることを認識し、次のようにパラメーターをわずかに異なる方法で渡す必要があります:

SELECT Value FROM dbo.CLRUDF('V001')
于 2013-08-13T12:55:18.667 に答える