2010-02-22 66 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

相关问题