获取sql server 2008中多次插入的标识

Ehs*_*san 6 sql insert sql-server-2008

您好
我将使用SQL Server 2008中提供的一个TSQL一次插入10行.我想要插入行的IDENTITY.我认为下面的解决方案可以工作,但我不确定是否发生了其他插入,而我运行上一次插入会影响结果

INSERT INTO tableA VALUES (1,2), (3,4), (4,5), ....
DECLARE @LastID INT = @@IDENTITY
SELECT TOP(10) ID FROM tableA WHERE ID<=@LastID ORDER BY ID DESC

Mit*_*eat 17

您可以使用OUTPUT子句:

DECLARE @tablevar table (ID int);

INSERT INTO tableA 
OUTPUT INSERTED.ID INTO @tablevar 
VALUES (1,2), (3,4), (4,5), ....
Run Code Online (Sandbox Code Playgroud)

  • @Ehsan - 只需省略`INTO @MyTableVar` 部分。 (2认同)
  • @Ehsan:我建议你接受达米安的回答。 (2认同)

Dam*_*ver 15

只需使用OUTPUT子句 - 它可以将输出返回给应用程序,也可以返回表变量以进行进一步的工作.

例如,您的查询将是:

INSERT INTO tableA
OUTPUT inserted.ID
VALUES (1,2), (3,4), (4,5), ...
Run Code Online (Sandbox Code Playgroud)