2009-07-06 136 views
4

我试图完成什么是说明如下:插入到一个临时表从存储过程SQL Server上2000

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

文章说,(通过评论的支持),这适用于SQL切断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. 

我确实发现this Stackoverflow post并且它也支持这一概念,这可以在SQL Server 2000,但这完成发布是为了解决SQL Server 2005的问题,并没有进入2000年。

回答

7

您可以在2005版以后的SQL Server中执行此操作。虽然SQL Server 2000支持表变量,但它不支持INSERTEXECUTE表变量。最接近的支持选择是使用临时表。

而不是使用表变量像@mytable的,使用一个名为表的东西像#mytable和你使用exec存储过程可以insert。您需要首先使用create table命令创建临时表。

+0

感谢。你是对的。我应该从错误信息中意识到这一点。 – 2009-07-06 21:10:53

4

尝试使用真正的临时表而不是表varaible的...

CREATE TABLE #jobs 
(jobcount int 
) 
INSERT 
INTO #jobs 
EXEC 
sp_executesql 
N’select 1 AS jobcount’ 
SELECT 
* 
FROM #jobs 
+1

也谢谢你。 – 2009-07-06 21:11:25

相关问题