我是SQL Server的初学者,并创建了一个包含id bigint identity(1,1)
列的简单表。在我的存储过程中,我在该表上使用此查询:
select *
from TABLEA
where id > @id
我想用此行返回存储的procodure的最新id列值:
SET @ResultValue = latest id column
我该怎么写?感谢。
答案 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()