当前位置:  开发笔记 > 数据库 > 正文

使用@@ identity而不是scope_identity的原因

如何解决《使用@@identity而不是scope_identity的原因》经验,为你挑选了2个好方法。

在SQL Server 2005数据库上,我们的一位远程开发人员刚刚检查了对"select scope_identity"更改为"select @@ identity"的存储过程的更改.您是否知道为什么要在scope_identity上使用@@ identity?



1> Mehrdad Afsh..:

@@IDENTITY将返回当前会话发出的最后一个标识值.SCOPE_IDENTITY()返回当前会话和相同范围中的最后一个标识值.它们通常是相同的,但假设调用了一个触发器,它在当前语句之前的某处插入了一些内容.@@IDENTITY将通过INSERT触发器的语句返回标识值,而不是块的insert语句.除非他知道自己在做什么,否则这通常是个错误.



2> Jamal Hansen..:

这是一个可以帮助区分它们的链接

好像:

IDENTITY - 连接上的最后一个标识

SCOPE_IDENTITY - 您明确创建的最后一个身份(排除触发器)

IDENT_CURRENT('tablename') - 表中的最后一个标识,与范围或连接无关.

推荐阅读
ifx0448363
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有