SQL Serverでマージを実行しています。私の更新では、値が変更された場合にのみ行を更新したいと考えています。更新ごとに増分するバージョン行があります。以下は例です:今マージ - 値が変更された場合のみ更新します。
MERGE Employee as tgt USING
(SELECT Employee_History.Emp_ID
, Employee_History.First_Name
, Employee_History.Last_Name
FROM Employee_History)
as src (Emp_ID,First_Name,Last_Name)
ON tgt.Emp_ID = src.Emp_ID
WHEN MATCHED THEN
UPDATE SET
Emp_ID = src.Emp_ID,
,[VERSION] = tgt.VERSION + 1
,First_Name = src.First_Name
,Last_Name = src.Last_Name
WHEN NOT MATCHED BY target THEN
INSERT (Emp_ID,0,First_Name,Last_Name)
VALUES
(src.Emp_ID,[VERSION],src.First_Name,src.Last_Name);
、私は名前だけが変更された場合にのみ、行を更新し、したがってバージョンをインクリメントしたい場合。
これは 'または'でしょうか?最初の名前が変更された場合は、私はまだ更新したい – TrialAndError
@ TrialAndError:うん、そうです。 Fixing ... – a1ex07
これは完全に動作すると思います。私は、マッチした部分に「AND」を付けることができなかったことを認識しませんでした。ありがとうございました。 – TrialAndError