2015-08-14 44 views
1

大家好,我希望獲取所有新插入的Id。實際上,我將數據插入基於外鍵標識的表中。獲取插入表中的多條記錄

Insert into table() 
Values(SELECT * FROM table where fId=X) 

下面兩個表是一樣的,所以在插入數據後,我想返回了inserterd

回答

1

您需要使用OUTPUThttps://msdn.microsoft.com/en-us/library/ms177564.aspx)子句中你插入的所有標識。這裏有一個工作示例:

DECLARE @tmp TABLE (id INT IDENTITY(1,1), txt VARCHAR(100)) 

INSERT INTO @tmp (txt) 
OUTPUT INSERTED.id 
VALUES ('a'),('b') 

因此,對於你的查詢 - 這不是一個有效的INSERT語句 - 這將是:

Insert into table() 
OUTPUT INSERTED.id_column_you_need_to_be_returned 
Values(SELECT * FROM table where fId=X)