sql – scope_identity vs ident_current

前端之家收集整理的这篇文章主要介绍了sql – scope_identity vs 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,它有一些代码说明当您将触发器放在桌面上时会发生什么

猜你在找的MsSQL相关文章