我知道Scope_Identity(), Identity(), @@Identity, 并且Ident_Current()都得到了标识列的值,但我很想知道其中的区别。
Scope_Identity()
Identity()
@@Identity
Ident_Current()
我遇到的部分争议是适用于上述这些功能的范围是什么意思?
我也喜欢使用它们的不同场景的简单示例?
@@identity
scope_identity()
ident_current(name)
identity()
select...into
会话是数据库连接。范围是当前查询或当前存储过程。
scope_identity()和函数不同的情况@@identity是,如果您在桌子上有触发器。如果您有一个插入记录的查询,导致触发器在某处插入另一条记录,则该scope_identity()函数将返回查询创建的标识,而@@identity函数将返回触发器创建的标识。
因此,通常您会使用该scope_identity()功能。