2010-02-22 64 views
0

是否可以使用存儲過程中返回的數據集?基本上我有一個存儲過程(讓我們稱之爲SP_1),它調用另一個存儲過程(讓我們稱之爲SP_2)。 SP_2有5個左右的選擇語句。我想要做的是處理SP_1中的每個選擇語句。基本上操縱數據或其他,但我不知道如何得到它。從另一個存儲過程捕獲/處理/處理來自另一個存儲過程的存儲過程中的多個數據集

讓我告訴IM在做什麼,這可能使事情更清晰

CREATE PROCEDURE [dbo].[usp_1] 
AS 
exec usp_2 
//How do I store the multiple select statements results in this stored proc? 

回答

2

爲了工作,內SP_2所有的SELECT必須返回相同數量的兼容列。如果一個返回2列,另一個返回5,另一個返回10,那麼它將不起作用。

如果每個SELECT不返回相同的列數和數據類型是一致的,那麼你要善於在SP_1

CREATE TABLE #test (Col1 VARCHAR(10), Col2 VARCHAR(10)) 
INSERT #test 
EXECUTE SP2 -- all resultsets return 2 VARCHAR columns 
-- Now use #test which should contain all the combined results from SP2 

使用這種方法去然而,如果他們都返回不同的欄目,然後你可以不行。你需要將每個單獨的選擇打入自己的存儲過程,並獨立地調用每一個。 SP2會改變,以調用這些sub sprocs。

+0

好的謝謝。在這種情況下,它不會返回相同的列。感謝你的回答。 – Travyguy9 2010-02-22 22:05:47

相關問題