考虑这个陈述:
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
逐一读取行,然后为每一行更新相应的行TABLE1
?