我是SQL Server的初学者,创建了一个简单的表,其中有一个id bigint identity(1,1)
列。在我的存储过程我用这个查询该表:如何在SQL Server中使用select查询获取最新的id列?
select *
from TABLEA
where id > @id
我想与存储procodure这一行返回最新的ID列值:
SET @ResultValue = latest id column
我如何写?谢谢。
我是SQL Server的初学者,创建了一个简单的表,其中有一个id bigint identity(1,1)
列。在我的存储过程我用这个查询该表:如何在SQL Server中使用select查询获取最新的id列?
select *
from TABLEA
where id > @id
我想与存储procodure这一行返回最新的ID列值:
SET @ResultValue = latest id column
我如何写?谢谢。
如果你想生成的最后一个标识值,无论何时何地它被生成,就可以使用IDENT_CURRENT
:
SELECT @id=IDENT_CURRENT('TABLEA')
如果你希望你的存储过程范围内创建的最后一个身份,使用SCOPE_IDENTITY
,但是这将在范围任何返回表的最后一个标识,所以如果你生成表A的身份,那么表B,你不能得到表A的身份是这样的:
SELECT @id=SCOPE_IDENTITY('TABLEA')
感谢您的回答,它的工作,请等待2分钟,接受您的答案 – user3671271
你可以得到列的最大值是这样的:
SET @ResultValue = IDENT_CURRENT('TABLEA')
或者,如果你只是想你刚才插在此查询批处理最新的值,可以使用@@IDENTITY
和/或SCOPE_IDENTITY()
:
SET @ResultValue = SCOPE_IDENTITY()
你可以简单地使用“SELECT MAX(id)FROM TABLEA” –