在事务提交之前,事务中所做的插入是否可见SELECT
问题描述:
我需要确认。在事务提交之前,事务中所做的插入是否可见SELECT
客户端1在事务内的表中插入行。
客户端2使用SELECT请求此表。如果该客户端隔离级别设置为READ COMMITTED,可以确认的是,SELECT不会返回尚未通过客户承诺1.
感谢
答
是的,你的说法是正确的。 READ COMMITTED
指定语句不能读取已被修改但未被其他事务处理的数据。
答
正确。
这样做的MSDN参考是here这(报价)说:
指定语句不能读取 数据已修改但尚未 其它事务提交。这 防止脏读。数据可以通过 当前交易中的 之间的其他交易更改为 ,导致 不可重复读取或幻影数据。 此选项是SQL Server默认值。
SELECT将需要在READ UNCOMMITTED下运行,以便读取已由其他进程修改但尚未提交事务的数据。
哪个连接应具有隔离级别“读取已提交”?有交易的人还是选择的人? – 20c 2010-04-09 10:32:17
@ 20c:制作“SELECT”的人。 – 2010-04-09 10:33:51