2009-12-07 50 views

回答

5
DECLARE @MyVar TABLE (ID int) 

INSERT INTO dbo.TargetTable 
    OUTPUT INSERTED.ID INTO @MyVar 
SELECT * FROM dbo.SourceTable 

SELECT * FROM @MyVar 
+0

我可以有另外一列捕獲原始ID嗎? – adam0101 2009-12-08 00:10:42

+0

我想我知道了,我只是修改表結構,然後將輸出行更改爲這樣的東西,對吧? OUTPUT dbo.SourceTable.ID,INSERTED.ID INTO @MyVar – adam0101 2009-12-08 00:18:58

+0

是的,只需向@MyVar添加一列,再添加一個INSERTED.Something – 2009-12-08 01:58:40

3

使用the OUTPUT clausecapture them(SQL Server 2005及更高版本)。

+1

很高興知道。我不必再使用遊標:) – 2009-12-07 23:47:10

0

某些數據庫支持INSERT INTO ... SELECT ... RETURNING ...語法。由於您使用T-SQL,我相信對於語法是:

INSERT INTO table (fields...) 
OUTPUT outputfields... 
SELECT ... 

有關於這個問題的PDF:Returning.pdf