【问题标题】:IDENT_CURRENT returning value which does not exist in the tableIDENT_CURRENT 返回值在表中不存在
【发布时间】:2013-05-22 13:15:56
【问题描述】:

我有一个存储过程,它使用IDENT_CURRENT 来更新表中最后添加的值。

问题是:

IDENT_CURRENT 返回表中不存在的值。 它返回的数字远高于表的 Max(ID)。 这怎么可能以及可以做些什么来解决它。我从不想使用MAX(ID) 来更新表格。

谢谢。

【问题讨论】:

  • IDENT_CURRENT 返回最后一个IDENTITY 生成,即使那是在事务回滚时从未插入的行。你能解释一下为什么你需要更新最近插入的行吗?您要更新当前会话中最近插入的还是全局更新?
  • 问题是我手动添加了 1 行并且插入成功。我在想回滚是在哪里以及如何发生的。
  • 我们无法告诉您回滚发生的时间。或者是否有一些行已被删除。
  • @Learner - 所以在你的INSERT 语句之后返回SCOPE_IDENTITY 或使用OUTPUT 子句。

标签: sql-server-2008 tsql


【解决方案1】:

如果您确定该表仅在当时更新,您可以使用 IDENT_CURRENT ("Table") 并获取该表中的最后插入的 id .

:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 1970-01-01
    相关资源
    最近更新 更多