次のステートメントを検討してください。
update TABLE1
set FormatCode = case T.FormatCode when null then TABLE1.FormatCode else T.FormatCode end,
CountryCode = case T.CountryCode when null then TABLE1.CountryCode else T.CountryCode end
<SNIP ... LOTS of similar fields being updated>
FROM TABLE2 AS T
WHERE TABLE1.KEYFIELD = T.KEYFIELD
TABLE1
他のアプリケーションで使用されているため、ロックは最小限にする必要があり
ます。他のTABLE2
人は使用しないので、私は気にしません。
TABLE1
TABLE2
それぞれ600K行が含まれています。
上記のステートメントにより、テーブルがロックされTABLE1
ますか?
最小限のロックを発生させるように変更するにはどうすればよいですか?
カーソルを使用して の行をTABLE2
1 つずつ読み取り、各行についてそれぞれの行を更新しTABLE1
ますか?