Observera att detta inte svarade på OP-frågan, det var bara en fördjupning av MERGE-klausulen.
Enligt MSDN
, "Om det finns två WHEN MATCHED
satser, då måste man ange en UPDATE
åtgärd och man måste ange en DELETE
åtgärd".
WHEN MATCHED THEN <merge_matched>
Anger att alla rader i target_table som matchar raderna som returneras av <merge_search_condition>
, och uppfyller eventuella ytterligare sökvillkor, antingen uppdateras eller tas bort enligt MERGE
sats kan ha högst två WHEN MATCHED
klausuler.
Om två satser anges måste den första satsen åtföljas av en AND <search_condition>
klausul. För varje given rad, den andra WHEN MATCHED
klausul tillämpas endast om den första inte är det. Om det finns två WHEN MATCHED
satser, då måste man ange en UPDATE
åtgärd och man måste ange en DELETE-åtgärd.
Källa:MSDN
Hoppas detta hjälper.