mssql sqlserver 中 @@IDENTITY、SCOPE_IDENTITY、IDENT_CURRENT三个函数之间的区别说明


摘要:
下文讲述@@IDENTITY、SCOPE_IDENTITY、IDENT_CURRENT三个函数之间的区别
实验环境:sql server 2008 R2



@@IDENTITY、SCOPE_IDENTITY、IDENT_CURRENT三个函数之间的区别

@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT三个函数具有相同的功能,
它们都可以返回插入表的identity的最后一个值。

@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT三个函数的区别

@@IDENTITY 和 SCOPE_IDENTITY :
以上两个函数可以返回 当前会话中的所有表中生成的最后一个标识值。
SCOPE_IDENTITY:只在当前作用域中返回值。
@@IDENTITY:无特定作用域限制。


IDENT_CURRENT 不受作用域和会话的限制,但是此函数只返回指定表的标识值。
IDENT_CURRENT 函数可以获取任意回话和任意作用域中特定表获取标识列的值。
@@IDENTITY函数的作用域为本地服务器上的当前会话,当我们在链接服务器中执行sql脚本,则无法获取标识列,
但我们可以通过在链接服务器中执行远程存储过程的方式,返回标识信息