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

SSIS – Durchführen einer Suche in einer anderen Tabelle, um eine verwandte Spalte zu erhalten

Eigentlich ist dies ein Fall für Lookup. Anscheinend möchten Sie eine Suche nach Name und Rückgabe-ID durchführen. Ziemlich einfach. So habe ich ein Beispiel dafür erstellt:

  1. Ziehen Sie eine Datenflussaufgabe auf die Designoberfläche. Doppelklicken Sie darauf, um dorthin zu wechseln.
  2. Erstellen Sie einen Verbindungsmanager für meine Datenbank
  3. Auf die Designoberfläche ziehen:
    • eine OLE DB-Quelle
    • Eine Lookup-Transformation
    • Ein OLE DB-Ziel
  4. Verbinden Sie die Quelle mit der Suche mit dem Ziel. Es ist die "Lookup Match Output", die wir zum Ziel bringen wollen. Siehe Abbildung 1.
  5. Konfigurieren Sie die Quelle. Meine Quelltabelle hatte nur ID- und Namensspalten.
  6. Suche konfigurieren
    • Registerkarte Allgemein:OLE DB-Verbindung verwenden
    • Registerkarte "Verbindung":Geben Sie dieselbe Verbindung an, verwenden Sie jedoch die Nachschlagetabelle. Meine Nachschlagetabelle bestand nur aus ID und Name, aber der Name wurde eindeutig gemacht, sodass er als Nachschlagespalte sinnvoller ist.
    • Konfigurieren Sie auf der Registerkarte "Spalten" den Namen so, dass er dem Namen zugeordnet wird, mit "id" als Ausgabe. Konfigurieren Sie den Suchvorgang als „Neue Spalte hinzufügen“ und nennen Sie diese Spalte „LookupId“. Siehe Abbildung 2.
    • Ignorieren Sie die anderen beiden Registerkarten
  7. Konfigurieren Sie die Ausgabe so, dass alle drei Spalten verwendet werden. Siehe Abbildung 3.

Das ist alles. Für jede Zeile aus der Quelle wird die Namensspalte verwendet, um mit der Namensspalte der Nachschlagetabelle übereinzustimmen. Jede Übereinstimmung trägt ihre ID-Spalte als neue LookupId-Spalte bei. Alle drei Spalten gehen zum Ziel weiter.

Abbildung 1:

Abbildung 2:

Abbildung 3: