下の画像のハイライトは、実装したいロジックを示しています。構文が間違っていることに気づきました。
MERGE ステートメントで、ターゲット テーブルの列の 1 つの値が NULL で、ソース テーブルの対応する値が null でない場合にのみ、条件付きでレコードを更新する方法はありますか?
これをどのように書き直すことをお勧めしますか?
MERGE dbo.input_311 AS [t]
USING dbo.input_311_staging AS [s]
ON ([t].[unique key] = [s].[unique key])
WHEN NOT MATCHED BY TARGET
THEN INSERT(t.[Created Date]) VALUES(s.[Created Date])
WHEN MATCHED
THEN UPDATE SET(t.[Created Date] = s.[Created Date]
WHERE s.[Created Date] IS NOT NULL
AND t.[Created Date] IS NULL)
OUTPUT deleted.*, $action, inserted.*;
GO