我正在尝试选择SQL Server中数据库上最后插入值的ID。我尝试了多种方法,例如@@IDENTITY
,IDENT_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值被迭代或更新时,代码仅向我显示最后一行
有人可以解释如何做吗?
答案 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()?