パラメータに基づいて複数のストアドプロシージャを実行しようとしています。私は5つのストアドプロシージャを呼び出す1つのストアドプロシージャを持っています。各ストアドプロシージャは、異なる結果セットを返します。SQL Serverのパラメータに基づいて複数のストアドプロシージャを実行
パラメータとして、私は'Notes,Viewers,Editors,..etc'
を渡しています。このリストに基づいて私は実行してすべての結果を得てそれを返す必要があります。
現在、私が試みていることは次のとおりです。
- パラメータをテーブル行として一時テーブルに挿入します。
- カーソルを使用してテーブル行を繰り返し実行し、ストアドプロシージャを実行します。カーソルインサイド
私はすべての結果を返す必要があり、この繰り返しの終わりに
if @row = 'Editor' EXEC sp 1 else if @row = 'Viewers' EXEC sp 2 ... ...
をチェックしています。
私の質問は、これを行うには最良の方法であるか、これらの種類の操作に対応するための良い解決策があるかどうかです。
if (@param like '%Editors%') exec sp1
if (@param like '%Viewers%') exec sp2
するか、値の順序が重要である:
条件付きで1つの一時テーブル(またはテーブル値の変数)に 'exec'して戻すことはできませんか? –