2016-05-14 7 views
0

パラメータに基づいて複数のストアドプロシージャを実行しようとしています。私は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 

するか、値の順序が重要である:

+0

条件付きで1つの一時テーブル(またはテーブル値の変数)に 'exec'して戻すことはできませんか? –

答えて

0

は、あなただけ行うことはできませんか?

+0

はい。注文事項。取得した結果が名前に関連していることを確認する必要があります。例えば ​​'Editor'私は、関連する名前に基づいてデータセットを設定する必要があります。 – Aruna

関連する問題