如何在 SQL 服务器中使用 select 查询获取最新的 id 列?

How can I get latest id column with select query in SQL Server?

我是 SQL 服务器的初学者,我创建了一个简单的 table,其中有一个 id bigint identity(1,1) 列。在我的存储过程中,我在 table:

上使用了这个查询
select *
from TABLEA
where id > @id

我想 return 使用此行存储过程的最新 ID 列值:

SET  @ResultValue = latest id column

我该怎么写呢?谢谢。

如果你想生成最后一个标识值,而不管它是在何时何地生成的,你可以使用IDENT_CURRENT:

SELECT @id=IDENT_CURRENT('TABLEA')

如果您想要在存储过程范围内创建的最后一个身份,请使用 SCOPE_IDENTITY,但这将 return 任何 范围内的最后一个身份 table,所以如果你在table A中生成了一个身份,那么table B,你无法通过这种方式获得table A的身份:

SELECT @id=SCOPE_IDENTITY('TABLEA')

你可以像这样得到列的最大值:

SET @ResultValue = IDENT_CURRENT('TABLEA')

或者,如果您只想要您刚刚在此查询批次中插入的最新值,您可以使用 @@IDENTITY and/or SCOPE_IDENTITY():

SET @ResultValue = SCOPE_IDENTITY()