SQL Server插入标识列表

时间:2011-01-06 20:10:32

标签: sql-server sql-server-2005 insert

我有一个自动增量ID的表,我正在做

INSERT INTO ( ... ) SELECT ... FROM ...

我有办法获取已插入的ID列表吗?

我原以为我可以在插入之前得到最大id然后假设其间的所有内容都是新的,但是如果从其他地方插入一行我可能会遇到问题。有没有正确的方法来做到这一点?

我正在使用SQL Server 2005

2 个答案:

答案 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