Ian*_*ton 6 sql-server transaction
如果我在没有提交声明的情况下运行它......
begin transaction
update dateranges set DateRangeTypeId = 1 where DateRangeId = 154
Run Code Online (Sandbox Code Playgroud)
在 Management Studio 的另一个选项卡中,我可以选择 Id 为 154 的范围,它会显示类型列的旧值。
为什么 SELECT 不会在更新的行上阻塞?
Dan*_*man 12
假设第二个 SSMS 窗口使用默认READ_COMMITTED
隔离级别,如果数据库READ_COMMITTED_SNAPSHOT
打开了设置,您将看到 before 值,而不是被未提交的事务阻止。
SELECT name, snapshot_isolation_state_desc
FROM sys.databases
ORDER BY name;
Run Code Online (Sandbox Code Playgroud)
该READ_COMMITTED_SNAPSHOT
数据库设置使用行版本,而不是锁定为读一致性,所以作家不会阻止读者和反之亦然。
归档时间: |
|
查看次数: |
1090 次 |
最近记录: |