我将隔离级别定义为READ UNCOMMITTED
,因为这是几个表上的长时间运行过程,并且没有脏读的风险,因为我只是插入新数据
根据我的理解,因为我使用了这种隔离级别,所以我应该可以从我插入行的表中执行SELECT
语句,但我不能,它被阻止了。
为什么此隔离级别会阻止SELECT
语句?
应该允许查询这些表,并且在最坏的情况下,检索脏数据。
为了防止这种情况发生,我正在使用CURSOR
(我知道,我也讨厌这些,但我没有编写这段代码)来处理大数据和多个表格。
答案 0 :(得分:0)
当您执行插入操作(无论隔离级别是什么)时,会发生锁定。没有做一些锁定就无法插入行。隔离级别会影响阅读。
如果您使用(nolock)从tablea中选择*,您将读取未提交的行,但在短时间内(由于插入)将发生锁定。