【问题标题】:How to 'select' the current identity value for a table?如何“选择”表的当前标识值?
【发布时间】:2010-10-28 13:03:58
【问题描述】:

dbcc checkident (MyTable, NORESEED)

将在消息中显示身份值。我看不到消息,因为我需要通过DataReaderselect 标识值。

有人有什么想法吗?

谢谢大家

【问题讨论】:

    标签: .net sql-server-2005 identity datareader


    【解决方案1】:
    SELECT IDENT_CURRENT('MyTable')
    

    BOL

    【讨论】:

    • 太好了,我知道必须有办法做到这一点。谢谢:)
    【解决方案2】:
    SELECT IDENT_CURRENT('TABLE_NAME')
    

    如果表中没有定义身份,则返回NULL

    【讨论】:

      【解决方案3】:
       select @@identity
      

      可能会工作,

      还有

      SELECT SCOPE_IDENTITY()
      

      【讨论】:

      • 我猜是反对票,因为这会返回您刚刚插入的行的标识。我没有插入任何行,但需要知道表的当前标识值
      • 这是不正确的。 @@identity 可以用于任何表。见msdn.microsoft.com/en-us/library/aa933167(SQL.80).aspx。 **@@IDENTITY 和 SCOPE_IDENTITY 将返回当前会话中任何表中生成的最后一个标识值。 **
      • 您没有指定要从中获取最后一个身份的表。所以你不能得到任何表的身份。它始终是您之前插入了一些行的表。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-22
      • 2017-03-29
      • 2016-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      相关资源
      最近更新 更多