从存储过程中获取结果集

时间:2011-05-24 13:04:04

标签: sql-server

我有一个包含存储过程B的存储过程A.

存储过程B执行插入并返回一行信息。

有没有办法在存储过程A中访问该信息?

3 个答案:

答案 0 :(得分:2)

您可以执行存储过程并将其选择到临时表中。

Create #table ()....

INSERT INTO #table EXEC your_procedure

唯一真正变得困难的时候(也许是不可能的,我从未见过它)是当存储过程返回多个记录集(不是多个记录)并且记录集具有不同的字段时。

编辑: 您也可以使用表变量(DECLARE @my_table TABLE())来执行相同的操作。在你的情况下,你会想要尝试两者,看看哪个更好。

http://www.sql-server-performance.com/2007/temp-tables-vs-variables/

答案 1 :(得分:1)

您可以创建临时表,然后从内部过程调用中插入-exec。

Share Data

向下滚动到Insert-Exec部分。

答案 2 :(得分:0)

我建议您创建一个Table variable并将行信息插入其中

编辑:

请注意,如果不是在Transaction下并且不将其与其他表连接,并且只是作为包含行信息的中间体,它将非常有用,如您在查询中所述。