2015-10-13 48 views
0

我是SQL Server的初学者,创建了一个简单的表,其中有一个id bigint identity(1,1)列。在我的存储过程我用这个查询该表:如何在SQL Server中使用select查询获取最新的id列?

select * 
from TABLEA 
where id > @id 

我想与存储procodure这一行返回最新的ID列值:

SET @ResultValue = latest id column 

我如何写?谢谢。

+0

你可以简单地使用“SELECT MAX(id)FROM TABLEA” –

回答

1

如果你想生成的最后一个标识值,无论何时何地它被生成,就可以使用IDENT_CURRENT

SELECT @id=IDENT_CURRENT('TABLEA') 

如果你希望你的存储过程范围内创建的最后一个身份,使用SCOPE_IDENTITY,但是这将在范围任何返回表的最后一个标识,所以如果你生成表A的身份,那么表B,你不能得到表A的身份是这样的:

SELECT @id=SCOPE_IDENTITY('TABLEA') 
+0

感谢您的回答,它的工作,请等待2分钟,接受您的答案 – user3671271

0

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

SET @ResultValue = IDENT_CURRENT('TABLEA') 

或者,如果你只是想你刚才插在此查询批处理最新的值,可以使用@@IDENTITY和/或SCOPE_IDENTITY()

SET @ResultValue = SCOPE_IDENTITY() 
相关问题