我有一个包含存储过程B的存储过程A.
存储过程B执行插入并返回一行信息。
有没有办法在存储过程A中访问该信息?
答案 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)
答案 2 :(得分:0)
我建议您创建一个Table variable
并将行信息插入其中
编辑:
请注意,如果不是在Transaction下并且不将其与其他表连接,并且只是作为包含行信息的中间体,它将非常有用,如您在查询中所述。