आप अपने 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 में भी आउटपुट कर सकते हैं और फिर तालिका चर को देख सकते हैं।
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 पर विवरण के लिए ऑनलाइन पुस्तकें देखें। स्टेटमेंट और OUTPUT क्लॉज ।
मार्क