2016-03-22 21 views
0

Im Moment habe ich eine Situation, wo ich zwei Tabellen habe:einfügen Wert in Spalte basierend auf Spalte in separater Tabelle

+--------------+-----------------+-----------------+-----------------+ 
| OriginalID | NewID   | FirstName  | lastName  | 
+--------------+-----------------+-----------------+-----------------+ 
|  123456 |     |  billy  |  bob  | 
|  234567 |     |  tommy  |  smith  | 
|  987654 |     |  sarah  |  anders  | 
+--------------+-----------------+-----------------+-----------------+ etc etc 

und

+--------------+-----------------+ 
| OriginalID | NewID   | 
+--------------+-----------------+ 
|  123456 | 1111111  | 
|  234567 | 1111112  | 
|  987654 | 1111113  | 
+--------------+-----------------+ 

Ohne im Detail in den Prozess selbst, Ich nehme einen Datensatz aus der ersten Tabelle und füge ihn in ein anderes System ein, das einen Datensatz in Form der zweiten Tabelle gibt (erzeugt eine benutzerdefinierte ID dafür).

Was möchte ich tun, ist für jeden Datensatz in der zweiten Tabelle, die NewID nehmen und es in der Zeile mit dem gleichen OriginalID in der ersten Tabelle platzieren (so dass es wie folgt aussieht:

+--------------+-----------------+-----------------+-----------------+ 
| OriginalID | NewID   | FirstName  | lastName  | 
+--------------+-----------------+-----------------+-----------------+ 
|  123456 | 1111111  |  billy  |  bob  | 
+--------------+-----------------+-----------------+-----------------+ 

Die einzigen Werte, die mir wichtig sind, sind die OriginalID und NewID, keiner der anderen Werte wird benötigt, dies wird bei mehreren Tabellen mit anderen Namen der Fall sein, deshalb habe ich ein generisches Beispiel angegeben genannt werden

ContactRecords (first table) and NewContact (second table) 

Ich habe über s gelesen Mehrere Beispiele zu SO über diese Art von Problem, aber keines von ihnen passt zu der Lösung, nach der ich suche.

Vielen Dank im Voraus!

Antwort

1

Das sieht wie ein Join-Update aus, das wir hier viele Male hatten.

update old 
set NewID = new.NewID 
from ContactRecords as old 
    inner join NewContact as New on new.OriginalID = old.OriginalID 
+0

Das hat den Trick! Ich entschuldige mich, dass ich diese Antwort woanders vermisst habe, und danke, dass du sie mir geschrieben hast! – Br0k3nL1m1ts

Verwandte Themen