我有一个自动增量ID的表,我正在做
INSERT INTO ( ... ) SELECT ... FROM ...
我有办法获取已插入的ID列表吗?
我原以为我可以在插入之前得到最大id然后假设其间的所有内容都是新的,但是如果从其他地方插入一行我可能会遇到问题。有没有正确的方法来做到这一点?
我正在使用SQL Server 2005
答案 0 :(得分:36)
使用output子句。
DECLARE @InsertedIDs table(ID int);
INSERT INTO YourTable
OUTPUT INSERTED.ID
INTO @InsertedIDs
SELECT ...
答案 1 :(得分:3)
创建table
变量,然后将OUTPUT
子句用于table
变量。
OUTPUT inserted.NameOfYourColumnId INTO tableVariable
然后,您可以SELECT
变量中的table
。