关于sql:将存储过程的结果保存在Table变量中

Save result of stored procedure in a Table variable

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to SELECT * INTO [temp table] FROM [stored procedure]

我有一个嵌套的存储过程调用

在其中一个存储过程中,我希望将结果保存到如下表变量中:

1
2
INSERT INTO @myTable
EXEC sp_myStoredProcedure

但是,因为过程。嵌套时发生以下错误:不能嵌套insert exec语句

必须从另一个过程调用该过程,更改这不是一个选项。我想尝试使用一个输出参数,但它仍然必须用insert-into语句来设置。

将从存储过程调用中检索到的数据保存到变量中还有哪些其他选项?


对于嵌套进程,表变量对调用过程不可见。以下内容适用于临时表。

http://databases.aspfaq.com/database/should-i-use-a-temp-table-or-a-table-variable.html

http://support.microsoft.com/kb/305977/en-us


未测试,但可以这样做:

1
2
3
4
DECLARE @insertedProc AS VARCHAR(300)
SET @insertedProc = 'INSERT INTO ' + @myTable + ' sp_myStoredProcedure'

EXEC @insertedProc

确保您已经定义了@mytable之前的内容。