Update

时间:2017-01-02 07:39:06

标签: sql sql-server

这些天我提高了我对事务隔离级别的了解。

特别是,我很难理解Read Committed和Repeatable Read之间的区别。

I've read this fantastic article,我理解所有关于脏读,不可重复读和幻像读的内容,但我不明白更新中多个事务会发生什么。

示例:
表:“测试”(字段:ID_REC - 数据)
交易A:

set transaction isolation level read committed;
begin transaction

update test
set DATA = 't1'
where ID_REC = 1

waitfor delay '00:00:20'
commit transaction

交易B :(相同但有另一条记录)

set transaction isolation level read committed;
begin transaction

update test
set DATA = 't2'
where ID_REC = 2

commit transaction

我在两秒钟内执行两笔交易。 第二个交易在第一个交易完成之前不会开始。 而且我也无法执行查询(从测试中选择*)。

所以:为什么会发生这种情况?事务在不同的行上工作......对于这种情况,Read Committed和Repeatable Read之间有什么区别?

1 个答案:

答案 0 :(得分:0)

请参阅以下链接

Read commited and repeatable read