Anda dapat menentukan klausa OUTPUT pada pernyataan MERGE Anda dan mendapatkan laporan keluaran dari apa yang telah dilakukan selama 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'
;
Ini akan memberi Anda baris untuk setiap "tindakan" (masukkan, perbarui, hapus) untuk setiap operasi. Jika banyak pernyataan, Anda juga bisa OUTPUT INTO @tableVar dan kemudian melihat variabel tabel.
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
Lihat Buku Daring untuk detail tentang MERGE pernyataan dan klausa OUTPUT .
Marc