0
私はクレームデータをインクリメンタルにインポートしようとしています。 System
(varchar
)とClaimNum
(varchar
)のソースとターゲットを一致させ、他の列のハッシュを変更して確認します。SQL Server 2008マージステートメント複数の一致条件
私は私のMERGE文(簡易)を持っている:
MERGE target
USING source ON target.System = source.System
AND target.ClaimNum = source.ClaimNum
WHEN MATCHED AND target.HashValue <> source.HashValue
THEN {update claim record data}
WHEN MATCHED AND target.HashValue = source.HashValue
THEN {update claim record as "checked"}
WHEN NOT MATCHED
THEN {insert new claim record}
しかし、私は2つの一致条件を設定することはできません。どのように私はマージステートメントでこれを達成することができますか?それならば
:
MERGE target
USING source
ON target.System = source.System
AND target.ClaimNum = source.ClaimNum
WHEN MATCHED THEN
UPDATE SET column_name =
CASE WHEN target.HashValue = source.HashValue THEN ...
ELSE ...
END
WHEN NOT MATCHED THEN {insert new claim record}
EDIT:
この
は、カスタム・ロジックを追加するために、2008年
ご回答ありがとうございます。しかし、私はmatch文の影響を受ける複数の列を持っています。たとえば、一致条件のcase文のようにする必要があります。 – wk4997
@ wk4997次に、複数のcase文を使用します。それらを更新したくない場合は、同じ値に設定するだけです。 'col_name = CASE WHEN condition THEN ... ELSE col_name END'と各カラムに対して異なる条件 – lad2025