MERGE-Anweisungen
Für bestimmte Mappings, die sowohl Daten in eine Datenbanktabelle einfügen als auch Daten darin aktualisieren (siehe auch Die Aktion "Aktualisieren, wenn...Rest einfügen"), generiert MapForce MERGE-Anweisungen, die zur Mapping-Laufzeit an der Datenbank ausgeführt werden. Als Ausführungsprozessor muss nicht notwendigerweise MapForce verwendet werden. Siehe Ausführen von Mappings, die Datenbanken modifizieren.
MERGE-Anweisungen werden für die folgenden Datenbanktypen unterstützt:
•SQL Server 2008 und höher
•Oracle
•DB2
•Firebird
Mittels MERGE-Anweisungen kann die Anzahl der Datenbankserveraufrufe reduziert werden, da in diesen Anweisungen die INSERT- und die UPDATE-Anweisung in einer Anweisung kombiniert sind. Außerdem wird die Konsistenzprüfung bei MERGE-Anweisungen von der Datenbank durchgeführt.
Um zu sehen, ob das Mapping zur Laufzeit (anstelle einer Kombination von INSERT- und UPDATE-Anweisungen) MERGE-Datenbankanweisungen ausführt, gehen Sie folgendermaßen vor:
1.Erstellen Sie ein Mapping, in dem sowohl eine Aktualisieren, wenn.. .als auch eine Rest einfügen-Aktion verwendet wird. Ein Beispiel dazu finden Sie unter Die Aktion "Aktualisieren, wenn...Rest einfügen".
2.Klicken Sie auf das Fenster Ausgabe, um eine Vorschau auf das Mapping zu sehen.
Wenn MERGE vom Datenbanktyp unterstützt wird, enthält das generierten SQL-Skript MERGE-Anweisungen, wie z.B. die folgende:

Wenn MERGE vom Datenbanktyp nicht unterstützt wird, enthält das generierte SQL-Skript nur UPDATE-Anweisungen. In der Vorschau sind keine INSERT-Anweisungen sichtbar, da diese nur ausgeführt werden, wenn die Aktualisieren, wenn...-Bedingung erfüllt wird (und dies vor der Ausführung des Mappings noch nicht bekannt ist).
Anmerkungen
•MapForce erstellt automatisch MERGE-Anweisungen, wenn es einen unterstützten Datenbanktyp erkennt. Sie können manuell keinen Einfluss darauf nehmen, ob MapForce eine MERGE-Anweisung erstellen soll.
•Wenn Sie mehrere Tabellen mit Parent-Child-Beziehungen aktualisieren, werden Merges nur für "leaf"-Tabellen erstellt. Eine "leaf"-Tabelle ist die am tiefsten verschachtelte gemappte Child-Tabelle. So wurden z.B. im Mapping unten sowohl für die Tabelle Users als auch für Addresses Aktualisieren, wenn... Rest einfügen... Aktionen definiert. MERGE-Anweisungen werden jedoch nur für die leaf-Tabelle Addresses generiert. Die übergeordnete Tabelle Users erhält anstelle von MERGE-Anweisungen UPDATE- oder INSERT-Anweisungen.

•Bei MERGE-Anweisungen wird die "Bulk Transfer"-Option (siehe Bulk-Einfügungen (MapForce Server) nur für ODBC- und JDBC-Datenbankverbindungen unterstützt.