ident_current显示错误的最后插入的id

时间:2013-11-02 06:00:02

标签: sql sql-server sql-server-2008 last-insert-id

我遇到了问题。我使用的是SQL Server 2008 Express。

当新行插入表时,IDENT_CURRENT函数返回正确的值(最后插入的行id)。但是当删除最后一个插入的行(DELETE FROM REPORT WHERE ID='last_inserted_id')时,IDENT_CURRENT函数返回已删除行的id。它没有更新。

我需要从表中返回最后一个id。

SELECT IDENT_CURRENT('report')

3 个答案:

答案 0 :(得分:2)

这是按预期工作的。该函数返回最后使用的标识值,即使它已被删除。以下是Microsoft文档的摘录:

IDENT_CURRENT返回在任何会话和任何范围内为特定表生成的最后一个标识值。

答案 1 :(得分:1)

身份总是上升。如果删除行,它不会下降。此外,它可以在值中具有“空白”。 阅读本文的详细信息http://technet.microsoft.com/en-us/library/ms186775.aspx

答案 2 :(得分:0)

如果您想要在表格中找到最大ID,请使用

SELECT MAX(ID) FROM table