Bemærk venligst, at dette ikke besvarede OP-spørgsmålet, det var blot en uddybning af MERGE-klausulen.
Ifølge MSDN
, "Hvis der er to WHEN MATCHED
klausuler, så skal man angive en UPDATE
handling, og man skal angive en DELETE
handling".
WHEN MATCHED THEN <merge_matched>
Angiver, at alle rækker af target_table, der matcher rækkerne returneret af <merge_search_condition>
, og opfylder eventuelle yderligere søgebetingelser, enten opdateres eller slettes i henhold til MERGE
sætning kan højst have to WHEN MATCHED
klausuler.
Hvis der er angivet to sætninger, skal den første sætning ledsages af en AND <search_condition>
klausul. For enhver given række, den anden WHEN MATCHED
klausul anvendes kun, hvis den første ikke er det. Hvis der er to WHEN MATCHED
klausuler, så skal man angive en UPDATE
handling, og man skal angive en SLET-handling.
Kilde:MSDN
Håber dette hjælper.