我觉得我应该知道这个,但我找不到任何具体概述这个的东西,所以在这里提问。
SQL Server的文档描述REPEATABLE READ为:
指定语句不能读取已被其他事务修改但尚未提交的数据,并且没有其他事务可以修改当前事务已读取的数据,直到当前事务完成
这很有道理,但是当出现这些情况时实际上会发生什么呢?例如,如果事务A读取行1,然后事务B尝试更新行1,会发生什么?事务B会等待事务A完成,然后再尝试吗?还是会抛出异常?
SQL Server的文档描述REPEATABLE READ为:
指定语句不能读取已被其他事务修改但尚未提交的数据,并且没有其他事务可以修改当前事务已读取的数据,直到当前事务完成
这很有道理,但是当出现这些情况时实际上会发生什么呢?例如,如果事务A读取行1,然后事务B尝试更新行1,会发生什么?事务B会等待事务A完成,然后再尝试吗?还是会抛出异常?