如何在 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()
我是 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()