2011-06-09 46 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