5

構築しているMSSQL2008 R2にストアドプロシージャ(SP)があり、返されるデータを絞り込むためにユーザーのリストが必要です。

私が作業しているシステムには、ユーザーのリストを返すGetUsers SPがあり、これを使用して、自分で作業しているSPから返される結果を制限する必要があります。

TABLE変数を見てきましたが、これが私が必要としているものであるかどうかはわかりません。

あるSPの結果を別のSPのwhere句に統合するにはどうすればよいですか?

4

2 に答える 2

10

SP の結果は次の方法で取得できます。

DECLARE @yourtablevariable TABLE (fields....)    

INSERT INTO @yourtablevariable
EXEC GetUsers

それで

SELECT *
FROM othertable
    INNER JOIN @yourtablevariable users on othertable.userid=users.userid

または

SELECT *
FROM othertable
WHERE userid in (SELECT UserID FROM @yourtablevariable)

または、可能であれば、GetUsers をテーブル値関数に変換することもできます。

于 2012-09-06T09:47:02.217 に答える
1

SQL Server で SP が を返す場合、返されるデータの量が多い場合は、テーブル変数(@Table)またはメモリ テーブル(#Table)TABLEを使用する最善の方法よりも。

于 2012-09-06T09:47:14.833 に答える