小编典典

Scope_Identity()、Identity()、@@Identity 和 Ident_Current() 有什么区别?

all

我知道Scope_Identity(), Identity(), @@Identity,
并且Ident_Current()都得到了标识列的值,但我很想知道其中的区别。

我遇到的部分争议是适用于上述这些功能的范围是什么意思?

我也喜欢使用它们的不同场景的简单示例?


阅读 70

收藏
2022-05-27

共1个答案

小编典典

  • @@identity函数返回在同一会话中创建的最后一个身份。
  • scope_identity()函数返回在同一会话和同一范围内创建的最后一个身份。
  • ident_current(name)返回在任何会话中为特定表或视图创建的最后一个身份。
  • identity()函数不用于获取身份,它用于在select...into查询中创建身份。

会话是数据库连接。范围是当前查询或当前存储过程。

scope_identity()和函数不同的情况@@identity是,如果您在桌子上有触发器。如果您有一个插入记录的查询,导致触发器在某处插入另一条记录,则该scope_identity()函数将返回查询创建的标识,而@@identity函数将返回触发器创建的标识。

因此,通常您会使用该scope_identity()功能。

2022-05-27