下面是示例查询,考虑 A
INSERT INTO Target (Col1,Col2,Col3,Col4) ----------------Statement#1
Select A.Col1,B.Col2,A.Col3,C.Col4 ----------------Statement#2
FROM A WITH(NOLOCK) INNER JOIN B WITH(NOLOCK)
ON A.Id = B.ID
LEFT JOIN C WITH NOLOCK
ON C.Id = B.ID
Where A.Id = 11
在哪个阶段将锁应用于表[排他锁?],SQL 将如何执行查询?
- 将根据 join 和 where 子句从表 A、B 和 C 中获取结果。
- 在准备好的结果上,开始在表中插入数据并同时对表应用锁。
因此,当实际数据写入页表时,即使它是 INSERT INTO 和 SELECT,但在选择期间不会被锁定?