小编Viv*_*tra的帖子

UPDATE 语句行为

我有一个关于 SQL Server 的 UPDATE 语句的内部工作原理的问题。我试图了解如果同时收到或服务以下 2 个更新语句会发生什么:

 |    Session 1 - Statement 1 | Session 2 - Statement 2
 |   -------------------------+-------------------------
 |    update dbo.Table1       |  update dbo.Table1 
 |    set Value = 10          |  set Value = 20 
 |    where ID = 1            |  where ID = 1 
 ?    and Value = 0;          |  and Value = 0;
(t)
Run Code Online (Sandbox Code Playgroud)

据我了解,更新将首先选择需要使用共享锁更新的行,这意味着两个更新语句都可以选择特定行。然后它请求一个排它锁来更新列值。因此,结果似乎将 Value 设置为 20。

我错过了什么还是我的理解正确?

连接的隔离级别设置为 READ UNCOMMITTED。

sql-server concurrency isolation-level update

8
推荐指数
2
解决办法
606
查看次数

标签 统计

concurrency ×1

isolation-level ×1

sql-server ×1

update ×1