从Sql Server 2000上的存储过程插入临时表

Fra*_*k V 4 sql-server stored-procedures insert

我正在努力完成这里描述的内容:

http://sqldev.wordpress.com/2008/05/06/insert-into-temporary-table-from-stored-procedure/

文章说(通过评论支持)这适用于SQL Server 2000但可能不那么容易.

这在2008年之前有点棘手 - 事实证明,在SQL Server 2008中,这可以轻松完成.

和评论说:

这不是2008年的特色.它是在那里,因为我记得...从SQL Server 2000?无论如何,这是一个很棒的功能!

如何快速完成SQL Server 2000的此操作?

使用文章所基于的代码,我收到以下错误消息:

Msg 197, Level 15, State 1, Line 7
EXECUTE cannot be used as a source when inserting into a table variable.
Run Code Online (Sandbox Code Playgroud)

我确实找到了这个Stackoverflow帖子,它也支持这个可以在SQL Server 2000中完成的概念,但是这篇文章是为了解决SQL Server 2005而且它没有进入2000多.

HLG*_*GEM 7

您可以在2005年以后的SQL Server中执行此操作.尽管SQL Server 2000支持表变量,它不支持INSERTEXECUTE一个表变量.最受支持的替代方法是使用临时表.

而不是使用像表变量@mytable,使用一个类似于表的表#mytable,你可以insert使用exec存储过程.您需要首先使用该create table命令创建临时表.