UPDATE - INSERT - DELTE の順で処理し UPDATE は
INNER JOIN で他は NOT EXISTS を使用する方法はいかがでしょうか。
例えば
BEGIN
UPDATE TableB
SET TableB.Filde1 = TableA.Filde1 ・・・・・・
FROM TableB INNER JOIN TableA ON TableB.ID = TableA.ID
END
BEGIN
INSERT INTO TableB
SELECT * FROM TableA
WHERE NOT EXISTS(SELECT * FROM TableB WHERE TableA.ID = TableB.ID)
END
BEGIN
DELETE FROM TableB
WHERE NOT EXISTS(SELECT * FROM TableA WHERE TableB.ID = TableA.ID)
END
こんな感じで。
SELECT文で確認してから実行してね!