我知道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()功能。