「id」フィールドが存在する場合はそれを出力したいというマージステートメントがあります。現在、更新または削除されたIDを出力するステートメントがありますが、idという名前の列がない場合、これは機能しません。マージステートメントに条件を追加する方法はありますか?マージステートメントは次のとおりです(ソースデータ値は単なるプレースホルダーであるため、無視してください)。
MERGE PACWARE.DHS.SVDDME WITH (HOLDLOCK) as target
USING (VALUES(<code>,<address1>,'',<city>,<state>,<zip>,0x414c414e205348414c4f534b59)) AS source
([CODE_],[TEMPADD1],[TEMPADD2],[TEMPCITY],[TEMPSTATE],[TEMPZIP],[ATTENTION])
ON target.CODE_ = source.CODE_
WHEN MATCHED THEN
UPDATE
SET
target.[CODE_] = source.[CODE_],target.[TEMPADD1] = source.[TEMPADD1],target.[TEMPADD2] = source.[TEMPADD2],target.[TEMPCITY] = source.[TEMPCITY],target.[TEMPSTATE] = source.[TEMPSTATE],target.[TEMPZIP] = source.[TEMPZIP],target.[ATTENTION] = source.[ATTENTION]
WHEN NOT MATCHED THEN
INSERT([CODE_],[TEMPADD1],[TEMPADD2],[TEMPCITY],[TEMPSTATE],[TEMPZIP],[ATTENTION])
values(source.[CODE_],source.[TEMPADD1],source.[TEMPADD2],source.[TEMPCITY],source.[TEMPSTATE],source.[TEMPZIP],source.[ATTENTION])
OUTPUT INSERTED.id;