SCOPE_IDENTITY 和 @@IDENTITY 的作用都是取得返回在当前会话中的任何表内所生成的最后一个标识值。
@@IDENTITY
返回为当前会话
的所有作用域
中的任何表最后生成的标识值。
SCOPE_IDENTITY
返回为当前会话
和当前作用域
中的任何表最后生成的标识值。
一个操作,一个触发器,一个存储过程叫做一个作用域。如果出现多个作用域的情况的时候,@@IDENTITY所取得的ID号就是最后一个作用域产生的结果。
示例:
select SCOPE_IDENTITY() as ID from xxtable;
select @@IDENTITY as ID from xxtable;
在使用过程中,尽量采用 SCOPE_IDENTITY() 函数。当 SCOPE_IDENTITY() 函数无法满足需求时,再考虑使用 @@IDENTITY 。