Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Multiple Update-Anweisung in SQL Server MERGE

Bitte beachten Sie, dass dies die OP-Frage nicht beantwortet hat, sondern nur eine Ausarbeitung der MERGE-Klausel war.

Gemäß MSDN , "Wenn es zwei WHEN MATCHED gibt -Klauseln, dann muss ein UPDATE angegeben werden Aktion und man muss ein DELETE angeben Aktion".

WHEN MATCHED THEN <merge_matched>

Gibt an, dass alle Zeilen von target_table mit den Zeilen übereinstimmen, die von ON <merge_search_condition> zurückgegeben werden , und alle zusätzlichen Suchbedingungen erfüllen, werden gemäß der -Klausel entweder aktualisiert oder gelöscht. Der MERGE -Anweisung darf höchstens zwei WHEN MATCHED haben Klauseln.

Wenn zwei Klauseln angegeben werden, muss die erste Klausel von einem AND <search_condition> begleitet werden Klausel. Für jede gegebene Zeile das zweite WHEN MATCHED Klausel wird nur angewendet, wenn die erste nicht gilt. Wenn es zwei WHEN MATCHED gibt -Klauseln, dann muss ein UPDATE angegeben werden Aktion und man muss eine DELETE-Aktion angeben.

Quelle:MSDN

Hoffe das hilft.