将存储过程的结果保存在Table变量中

时间:2011-01-04 15:47:00

标签: sql sql-server sql-server-2008 stored-procedures exec

  

可能重复:
  How to SELECT * INTO [temp table] FROM [stored procedure]

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

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

INSERT INTO @myTable 
EXEC sp_myStoredProcedure
然而,因为proc。嵌套发生以下错误: INSERT EXEC语句不能嵌套

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

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

2 个答案:

答案 0 :(得分:3)

在嵌套过程的情况下,表变量对于调用过程是不可见的。以下是#temp表的合法性。

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 :(得分:-3)

未经测试但可能会这样做:

DECLARE @insertedProc as varchar(300)
SET @insertedProc = 'INSERT INTO ' + @myTable + ' sp_myStoredProcedure'

EXEC @insertedProc

确保您已预先确定了@myTable的内容。