gpt4 book ai didi

sql - @@ IDENTITY和并发

转载 作者:行者123 更新时间:2023-12-03 12:50:05 31 4
gpt4 key购买 nike

假设我有一个表表A ,其主键标记为IDENTITY,并且我在存储过程中执行以下两个语句

INSERT INTO TableA VALUES ('a', 'b', 'c', 'd')
SET @SomeVariable = @@IDENTITY

为了使 @SomeVariable存储刚刚添加的值的主键。如果另一个客户端在上述语句的执行之间执行了相同的插入操作,那么 @@IDENTITY@SomeVariable是否可能存储了错误的(最近的)值?

非常感谢你。

最佳答案

@@IDENTITY仅适用于您的连接(不是全局的),因此您应该获取连接上发生的最后一个IDENTITY值。但是,这可能来自其他范围,例如触发器。

这就是 SCOPE_IDENTITY() 是最佳做法的原因:它是针对INSERT的作用域,而不考虑触发器等

对于真正的全局,非并发且坦率的白痴解决方案,它是 IDENT_CURRENT 。这将受到连接并写入表的每个人的影响。

关于sql - @@ IDENTITY和并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6226057/

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