加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – scope_identity vs ident_current

发布时间:2020-12-12 08:34:30 所属栏目:MsSql教程 来源:网络整理
导读:经过多次研究,我有点困惑,我应该在sql中使用哪个身份跟踪器. 从我所了解的scope_identity将给我从任何表更新的最后一个id,ident_current将从指定的表返回最后一个id. 所以给我的信息在我看来是最好的版本(如果你知道你将要更新哪个表)是ident_current.然而,在
经过多次研究,我有点困惑,我应该在sql中使用哪个身份跟踪器.

从我所了解的scope_identity将给我从任何表更新的最后一个id,ident_current将从指定的表返回最后一个id.

所以给我的信息在我看来是最好的版本(如果你知道你将要更新哪个表)是ident_current.然而,在阅读之后,似乎大多数人喜欢使用scope_identity.这是什么原因,我的逻辑有缺陷?

解决方法

在这种情况下,您需要编写表名称,如果您决定更改表名称会发生??什么?然后,您也不能忘记更新代码以反映出来.我总是使用SCOPE_IDENTITY,除非我需要在触发器中插入的ID,那么我将使用@@ IDENTITY

另外更大的区别是,IDENT_CURRENT会给你从插入的另一个进程的身份(换句话说,从任何用户最后生成的身份值)
所以如果你做一个插入,然后有人做一个插入,然后你做一个SELECT IDENT_CURRENT你将得到该人的身份值

另请参见6 Different Ways To Get The Current Identity Value,它有一些代码说明当您将触发器放在桌面上时会发生什么

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读