Wenn Datensatz vorhanden ist, aktualisiere andernfalls Einfügen

8

Ich versuche, einige Daten zwischen zwei SQL Server 2008-Tabellen zu verschieben. Wenn der Datensatz in Table2 mit der E-Mail aus Table1 vorhanden ist, aktualisieren Sie diesen Datensatz mit den Daten aus Table1, andernfalls fügen Sie einen neuen Datensatz ein.

In Tabelle1 habe ich eine Anzahl von Spalten; Vorname, Nachname, E-Mail und so weiter.

Ich bin mir nicht sicher, wie ich die Abfrage so strukturieren soll, dass Table2 aktualisiert wird, wenn die E-Mail aus Table1 existiert, oder eine neue Zeile einfügen, wenn E-Mail aus Table1 nicht in Table2 existiert.

Ich habe versucht, ein paar Suchanfragen bei Google durchzuführen, aber die meisten Lösungen scheinen zu funktionieren, indem ich eine gespeicherte Prozedur erstelle. Also habe ich mich gefragt, ob jemand wissen könnte, wie man eine passende Abfrage erstellt, die den Trick machen könnte?

    
doubleplusgood 27.10.2009, 11:58
quelle

3 Antworten

9
%Vor%     
Quassnoi 27.10.2009, 23:02
quelle
20

Ich denke MERGE ist, was Sie wollen.

    
APC 27.10.2009 12:04
quelle
1

Microsoft hat ein Tool zum Vergleichen von Daten zwischen SQL-Tabellen veröffentlicht, das könnte eine gute Option sein bestimmte Situationen.

Bearbeiten: Vergessen zu erwähnen, es erzeugt auch ein Skript zum Einfügen / Aktualisieren von fehlenden oder anderen Zeilen.

Der Vollständigkeit halber habe ich diese Abfrage gehackt, die das tut, was Sie wollen, sie aktualisiert vorhandene Tabelle2-Datensätze und fügt diejenigen hinzu, die fehlen, basierend auf der E-Mail-Adresse.

Die unten aufgeführten Abfragen "Aktualisieren" und "Einfügen fehlend" sind diejenigen, die Sie möchten.

%Vor%     
invert 27.10.2009 12:08
quelle