如何在SQL Server中选择表的最后插入值?

时间:2019-07-10 17:32:37

标签: sql sql-server

我正在尝试选择SQL Server中数据库上最后插入值的ID。我尝试了多种方法,例如@@IDENTITYIDENT_CURRENT('TableName')SCOPE_IDENTITY(),但没有任何可能。我也曾尝试按顺序订购,但对我没有任何帮助。

在我的代码中,我有

Select top(1)* 
from Ferramenta_Limpeza 
where Ferramenta_ID!='' and (Id_Gestao between'1' and '434')
order by Id_Gestao desc

我的逻辑是找到介于1和434之间的空值。问题是,即使我在'ID = 1'上插入了另一个记录,也总是显示最后一个值,这意味着我尝试了更新Id 1的值,当我尝试相同的选择以显示las值被迭代或更新时,代码仅向我显示最后一行

有人可以解释如何做吗?

1 个答案:

答案 0 :(得分:0)

使用@@ IDENTITY,IDENT_CURRENT('TableName'),SCOPE_IDENTITY()时,您必须具有一列具有IDENTITY增量值的列。

Ex:创建临时表

 CREATE TABLE #TableName
 (
   ID [int] IDENTITY(1,1),
   Name_value VARCHAR(100)
 )

-执行插入操作,这将为您提供最后插入的值

 insert into #TableName (Name_value) values ('test1')
 insert into #TableName (Name_value) values ('test2')
 insert into #TableName (Name_value) values ('test3')

 select SCOPE_IDENTITY()

确保您阅读以下链接并了解输出的区别

What is the difference between Scope_Identity(), Identity(), @@Identity, and Ident_Current()?