Mig*_*uel 2 sql multithreading identity
假设我有一个TableA,其主键标记为IDENTITY,并且我在存储过程中执行以下两个语句
INSERT INTO TableA VALUES ('a', 'b', 'c', 'd')
SET @SomeVariable = @@IDENTITY
Run Code Online (Sandbox Code Playgroud)
为了@SomeVariable存储刚刚添加的值的主键.如果另一个客户端执行上面的语句的执行之间的相同的插入,是有可能,@@IDENTITY因而@SomeVariable存储错误(最近)值?
非常感谢你.
@@IDENTITY仅用于您的连接(非全局),因此您应该获得连接上发生的最后一个IDENTITY值.但是,这可能来自不同的范围,例如触发器.
这就是SCOPE_IDENTITY()最佳实践的原因:它是针对INSERT的范围而不考虑触发器等
对于真正的全球性,非并发性和坦率的愚蠢解决方案而言IDENT_CURRENT.这将受到连接和写入表的每个人的影响.
| 归档时间: |
|
| 查看次数: |
152 次 |
| 最近记录: |