2009-07-06 117 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

相關問題