【问题标题】:@@Identity return same value on each insert@@Identity 在每次插入时返回相同的值
【发布时间】:2015-12-04 07:53:39
【问题描述】:

我有一个存储过程,其中插入一条语句并返回@@Identity。

此@@ Identity 始终返回 1。当将 @@Idnetity 删除到 Identity_Scope 时,它​​返回正确的预期值,该值始终递增 1。所以这很好。但问题是。为什么@@ Identity 列返回 1。

我检查并删除了所有触发器并检查了所有功能,但不知道为什么我使用@@Identity 得到 1。似乎有一个表被截断,然后一个值被插入。

知道为什么@@Identity 总是返回 1。是否有服务器设置在做某事?

【问题讨论】:

  • 显示您的代码。可能你用错了@@identity
  • 我建议您也使用 SCOPE_IDENTITY()
  • 愚蠢的问题:您要插入数据的那个表是否有IDENTITY 列??
  • SCOPE_IDENTITY 上的页面解释了不同功能之间的差异。为什么指望我们反刍它们?
  • 我不是要求 scope_Identity 与 @@Identity。

标签: sql-server tsql identity


【解决方案1】:

请注意:

  • @@identity 函数返回在 same 中创建的最后一个身份 会话
  • scope_identity() 函数返回最后一个身份 在同一会话和同一范围内创建。
  • ident_current(Name) 返回为特定的创建的最后一个身份 任何会话中的表或视图。

因此,请将您的代码发送给我们以获得更好的帮助。您可能以错误的方式使用@@Identity。

【讨论】:

    猜你喜欢
    • 2015-10-28
    • 2023-03-17
    • 1970-01-01
    • 2023-03-06
    • 2020-09-30
    • 1970-01-01
    • 2015-06-13
    • 2016-01-11
    相关资源
    最近更新 更多