我觉得我应该知道这一点,但我找不到任何具体概述这一点的内容,所以这里就是这样。
SQL Server的documentation将REPEATABLE READ描述为:
指定语句无法读取已修改的数据 尚未承诺的其他交易,也没有其他交易 可以修改当前事务已读取的数据,直到 当前交易完成
这是有道理的,但是当出现其中一种情况时,实际发生了什么?例如,如果事务A读取第1行,然后事务B尝试更新第1行,会发生什么?事务B是否等到事务A完成然后再试一次?或者抛出异常?
答案 0 :(得分:1)
REPEATABLE READ
对查询计划运算符在事务持续时间内读取的所有行执行S锁定。您的问题的答案如下:
在Hekaton下,它的工作方式不同,因为没有锁。