構築しているMSSQL2008 R2にストアドプロシージャ(SP)があり、返されるデータを絞り込むためにユーザーのリストが必要です。
私が作業しているシステムには、ユーザーのリストを返すGetUsers SPがあり、これを使用して、自分で作業しているSPから返される結果を制限する必要があります。
TABLE変数を見てきましたが、これが私が必要としているものであるかどうかはわかりません。
あるSPの結果を別のSPのwhere句に統合するにはどうすればよいですか?
構築しているMSSQL2008 R2にストアドプロシージャ(SP)があり、返されるデータを絞り込むためにユーザーのリストが必要です。
私が作業しているシステムには、ユーザーのリストを返すGetUsers SPがあり、これを使用して、自分で作業しているSPから返される結果を制限する必要があります。
TABLE変数を見てきましたが、これが私が必要としているものであるかどうかはわかりません。
あるSPの結果を別のSPのwhere句に統合するにはどうすればよいですか?
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 をテーブル値関数に変換することもできます。
SQL Server で SP が を返す場合、返されるデータの量が多い場合は、テーブル変数(@Table)またはメモリ テーブル(#Table)TABLE
を使用する最善の方法よりも。