码迷,mamicode.com
首页 > 其他好文 > 详细

谈谈@@IDENTITY 和 SCOPE_IDENTITY()的区别

时间:2015-08-04 22:47:34      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:

在ms sql server中一张表有自增长字段,最近插入表中记录的自增长字段可以通过@@IDENTITY或者SCOPE_IDENTITY()取得。

通常情况下@@IDENTITY 和 SCOPE_IDENTITY()可以起到同样的效果,但是也不尽然,他们两者之间还是有区别的。微软的文档上这样描述:
@@IDENTITY and SCOPE_IDENTITY return the last identity value generated in any table in the current session. However, SCOPE_IDENTITY returns the value only within the current scope; @@IDENTITY is not limited to a specific scope.
也就是说通常情况用SCOPE_IDENTITY()总是可以得到当前范围内最近插入行生成的标示值,而@@IDENTITY则不限于当前范围内。

 

我之前一直使用SELECT @@IDENTITY来取得最近插入记录的标示值,这在没有使用触发器的情况下是没有问题的,但是保险起见还是使用SCOPE_IDENTITY()更好一些。

转自:http://www.cnblogs.com/yukaizhao/archive/2009/12/29/identity_vs_scope_identity.html

谈谈@@IDENTITY 和 SCOPE_IDENTITY()的区别

标签:

原文地址:http://www.cnblogs.com/zhanghai/p/4703257.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!