SQL Server插入标识列表

Kyl*_*yle 13 sql-server sql-server-2005 insert

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

INSERT INTO ( ... ) SELECT ... FROM ...
Run Code Online (Sandbox Code Playgroud)

有没有办法让我获得已插入的id列表?

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

我正在使用SQL Server 2005

Joe*_*lli 36

使用输出子句.

DECLARE @InsertedIDs table(ID int);

INSERT INTO YourTable
    OUTPUT INSERTED.ID
        INTO @InsertedIDs 
    SELECT ...
Run Code Online (Sandbox Code Playgroud)