2011-06-09 86 views
2

我試圖在存儲過程中使用OUTPUT子句,以在INSERT後面輸出一個縮進列的值到臨時表。在SQL Server 2005中輸出到臨時表

CREATE TABLE #Test 
(
    ID INT 
) 

INSERT INTO [TableB] OUTPUT INSERTED.ID #Test SELECT * FROM [TableA] 

然而,當我執行這個程序的SQL Server顯示我在一個表中的結果(正確地)稱爲Test但如果我寫SELECT * FROM #Test因爲在存儲過程中的下一個語句就說明我什麼。我如何有效地完成這個?

回答

9

我認爲你缺少一個INTO - 試試這個:

CREATE TABLE #Test(ID INT) 

INSERT INTO [TableB] 
    OUTPUT INSERTED.ID INTO #Test 
    SELECT * FROM [TableA] 

列於OUTPUT列表後,表名

+0

右前加一個INTO。那正是出錯的地方!非常感謝你! – 2011-06-09 11:40:06