2013-01-06 112 views
0
select top 0 * INTO #temp from stored procedure 

需要根據存儲過程返回的數據類型的結構創建臨時表。 使用sql server 2000,2005,0r 2008select top 0 * INTO存儲過程中的#temp

+1

一些不錯的[發表](http://stackoverflow.com/questions/653714/how-to-select-into-temp-table-from-stored-procedure) – bonCodigo

回答

0

你不能這樣做。爲了得到從存儲過程的結果,你必須首先定義結果的結構:

create table #temp (. . .); 
insert into #temp 
    exec(stored procedure) 

如果您檢查SELECT聲明(here)的語法,你會看到沒有提及運行存儲一個程序。

也許你應該發表另一個問題來描述你正在嘗試做什麼。爲什麼存儲過程會返回不同的結果格式?

+0

感謝您的回覆,我想創建結構從存儲過程,因爲sql開發人員大多數時候使用臨時表和這個臨時表是存儲過程的克隆結構和大部分存儲過程的時間過程返回很多列並且創建這種類型的結構變成冗長的過程,但是什麼我這樣做,以解決此問題是: 1.創建獨創的SP的克隆副本 2.更改克隆SP,使其打印QUERY 3.然後修改該查詢使用SELECT TOP 0 * INTO

從 此查詢 – ShaoKhan

+0

有可能是您可以通過退貨採取的其他方法g XML或具有單獨的存儲過程(或參數),例如返回結構然後動態創建它。 –

+0

我以前從未使用XML,您可以提供一些示例或鏈接。 – ShaoKhan