2016-05-14 89 views
0

我試圖根據參數執行多個存儲過程。我有一個存儲過程調用5個存儲過程。每個存儲過程返回不同的結果集。根據SQL Server中的參數執行多個存儲過程

作爲參數,我要通過'Notes,Viewers,Editors,..etc'。基於這個列表,我需要執行並獲取所有結果並將其返回。

目前我正在嘗試的是如下;

  • 將參數作爲表格行插入到臨時表中。
  • 使用遊標遍歷錶行並執行存儲過程。
  • 光標裏面我檢查

    if @row = 'Editor' EXEC sp 1 
    else if @row = 'Viewers' EXEC sp 2 
    ... 
    ... 
    

在本次迭代我需要返回所有的結果結束。

所以我的問題是,這是最好的方式來完成它或有任何好的解決方案來迎合這些類型的操作。

+0

你能不能有條件地把'exec'變成一個臨時表(或表值變量)然後返回? –

回答

0

你就不能這樣做:

if (@param like '%Editors%') exec sp1 
if (@param like '%Viewers%') exec sp2 

或者是值的順序很重要?

+0

是的。訂單很重要。需要確保我得到的結果與名稱相關。例如「編輯器」我需要根據相關名稱填充數據集。 – Aruna