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

时间:2015-10-13 09:07:04

标签: sql-server tsql stored-procedures identity-column

我是SQL Server的初学者,并创建了一个包含id bigint identity(1,1)列的简单表。在我的存储过程中,我在该表上使用此查询:

select *
from TABLEA
where id > @id

我想用此行返回存储的procodure的最新id列值:

SET  @ResultValue = latest id column

我该怎么写?感谢。

2 个答案:

答案 0 :(得分:1)

如果您希望生成最后一个标识值,无论生成的时间和位置如何,您都可以使用IDENT_CURRENT

donor_id

如果您希望在存储过程范围内创建最后一个标识,请使用SCOPE_IDENTITY,但这将返回任何表中范围中的最后一个标识,因此如果您在表A,然后是表B,您无法通过这种方式获得表A的身份:

SELECT @id=IDENT_CURRENT('TABLEA')

答案 1 :(得分:0)

您可以像这样获取列的最大值:

SET @ResultValue = IDENT_CURRENT('TABLEA')

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

SET @ResultValue = SCOPE_IDENTITY()