Blog von Alex Kuznetsov
enthält einen Vorschlag mit dem OUTPUT
-Klausel eines UPDATE
Aussage. Um das Beispiel aus diesem Blogeintrag (ungetestet) zu paraphrasieren:
DECLARE @updated_ids table(id int)
UPDATE table
SET ...
OUTPUT inserted.id INTO @updated_ids
FROM table INNER JOIN data-to-insert ON table.id = data-to-insert.id
INSERT INTO table
SELECT ...
FROM data-to-insert
WHERE id NOT IN (SELECT id FROM @updated_ids)