gpt4 book ai didi

sql - 范围身份与当前身份

转载 作者:行者123 更新时间:2023-12-02 09:57:47 25 4
gpt4 key购买 nike

经过大量研究,我对应该在 sql 中使用哪个身份跟踪器有点困惑。

据我了解,scope_identity 将为我提供从任何表更新的最后一个 id,ident_current 将返回指定表中的最后一个 id。

因此,考虑到这些信息,在我看来,最好使用的版本(如果您知道要更新哪个表)是 ident_current。然而,读完后发现大多数人更喜欢使用scope_identity。这背后的原因是什么?我的逻辑是否有缺陷?

最佳答案

在这种情况下您需要写入表名,如果您决定更改表名会发生什么?然后,您也一定不要忘记更新您的代码以反射(reflect)这一点。我总是使用 SCOPE_IDENTITY 除非我需要触发器中发生的插入的 ID,那么我将使用 @@IDENTITY

还有一个更大的区别是 IDENT_CURRENT 将为您提供来自执行插入操作的另一个进程的身份(换句话说,来自任何用户的最后生成的身份值)因此,如果您执行插入操作,然后有人在您执行 SELECT IDENT_CURRENT 之前执行插入操作,您将获得其他人的身份值

另请参阅6 Different Ways To Get The Current Identity Value其中有一些代码解释了当您将触发器放在表上时会发生什么

关于sql - 范围身份与当前身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/567171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com