将存储过程的结果保存到一个表变量中。

18 浏览
0 Comments

将存储过程的结果保存到一个表变量中。

这个问题已经有了答案:

可能是重复问题:

如何从存储过程中选择 * INTO [临时表] FROM [存储过程]

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

在其中一个存储过程中,我想要将结果保存到一个表变量中,就像这样:

INSERT INTO @myTable 
EXEC sp_myStoredProcedure

但是,由于过程被嵌套,因此会出现以下错误:

不能嵌套使用 INSERT EXEC 语句

必须从另一个过程中调用该过程,更改这一点不是选项。

我想尝试使用输出参数,但它仍然必须通过插入语句设置。

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

admin 更改状态以发布 2023年5月21日
0
0 Comments

未测试但可能可以这样做:

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

确保事先定义了@myTable是什么。

0
0 Comments

在嵌套存储过程的情况下,表变量对调用过程不可见。以下是使用#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

0