Upozorňujeme, že toto není odpověď na otázku OP, jedná se pouze o rozpracování klauzule MERGE.
Podle MSDN
, "Pokud existují dva WHEN MATCHED
klauzule, pak je třeba zadat UPDATE
akce a jeden musí zadat DELETE
akce".
WHEN MATCHED THEN <merge_matched>
Určuje, že všechny řádky cílové_tabulky, které odpovídají řádkům vráceným <merge_search_condition>
a splňují všechny další podmínky vyhledávání, jsou buď aktualizovány nebo odstraněny podle klauzule MERGE
příkaz může mít maximálně dva WHEN MATCHED
klauzule.
Pokud jsou zadány dvě klauzule, musí být první klauzule doprovázena AND <search_condition>
doložka. Pro každý daný řádek druhý WHEN MATCHED
klauzule se použije pouze v případě, že první není. Pokud existují dva WHEN MATCHED
klauzule, pak je třeba zadat UPDATE
action a jeden musí specifikovat akci DELETE.
Zdroj:MSDN
Doufám, že to pomůže.