MERGE ステートメントで OUTPUT 句を指定すると、MERGE 中に実行された内容の出力レポートを取得できます。
MERGE (targetTable) AS t USING (sourceTable) AS s ON t.ID = s.ID WHEN MATCHED THEN (some statements) WHEN NOT MATCHED THEN (some statements) OUTPUT $action, inserted.ID 'inserted', deleted.ID 'deleted' ;
プレ>これにより、各操作の各「アクション」(挿入、更新、削除) の行が得られます。ステートメントが多い場合は、@tableVar に OUTPUT INTO してから、テーブル変数を確認することもできます。
DECLARE @tableVar TABLE (MergeAction VARCHAR(20), InsertedID INT, DeletedID INT) MERGE (targetTable) AS t USING (sourceTable) AS s ON t.ID = s.ID WHEN MATCHED THEN (some statements) WHEN NOT MATCHED THEN (some statements) OUTPUT $action, inserted.ID 'inserted', deleted.ID 'deleted' INTO @tableVar ; SELECT MergeAction, COUNT(*) FROM @tableVar GROUP BY MergeAction
プレ>MERGE の詳細については、Books Online をご覧ください。 ステートメントと OUTPUT 句 .
マーク