我无法弄清楚为什么会发生这种情况。很确定我理解这个理论,但是我看不到的东西肯定在发生。
表 A 具有以下架构:
ID [Primary Key]
Name
Type [Foreign Key]
SprocA 将隔离级别设置为可重复读取,并从表 A 中选择具有Type=1
. 它还会更新这些行。
SprocB 从表 A 中选择具有Type=2
.
现在鉴于这些是完全不同的行集,如果我同时执行两者(并放WAITFOR
调用以减慢它的速度),SprocB 直到 SprocA 才会完成。
我知道这与对类型的查询有关,就好像我根据主 ID 进行选择一样,它允许并发访问表。
任何人有任何启示?
干杯