预期的共享锁如何影响插入
大家好,
我浏览了一些博客,发现Select语句(共享锁)也可以阻止 插入和更新语句。我明白这是真的,我试图复制这个。 但不知怎的,我无法复制这个。任何人都可以帮我复制这个问题
这就是我想要做的事情
连接1
BEGIN TRAN
Select * from myBigTable
COMMIT
连接2
WHILE (1=1)
BEGIN
BEGIN TRAN
INSERT INTO MyBigTable(.....)
SELECT ......
COMMIT
END
但两者都运行良好。有人可以指导我复制这个问题。
由于 阿图尔
答案 0 :(得分:0)
select语句不会阻止插入
同样,选择不会阻止更新(除非您处于可序列化的隔离级别)。在其他隔离级别中,select将仅对行执行共享锁定直到读取持续时间,但不会结束交易。
请记住隔离级别仅用于select语句,以告诉SQL在选择数据时锁定的时间长度,或者我是否应该使用lock.DDL语句将始终对其修改的数据采用层次顺序的独占锁定