なぜこれが起こっているのか、頭を丸めるのに問題があります。私は理論を理解していると確信していますが、私には見えない何かが起こっているに違いありません。
表Aのスキーマは次のとおりです。
ID [Primary Key]
Name
Type [Foreign Key]
SprocAは、分離レベルを反復可能読み取りに設定し、テーブルAから。を持つ行を選択しますType=1
。また、これらの行を更新します。
SprocBは、テーブルAから。を持つ行を選択しますType=2
。
これらは完全に異なる行セットであるため、両方を同時に実行すると(そして、WAITFOR
速度を落とすために呼び出しを行うと)、SprocBはSprocAまで完了しません。
プライマリIDに基づいて選択した場合と同様に、タイプのクエリに関係していることはわかっています。これにより、テーブルへの同時アクセスが可能になります。
誰かが光を当てますか?
乾杯