sql >> Database >  >> RDS >> Sqlserver

SSIS - Een opzoeking uitvoeren op een andere tabel om een ​​gerelateerde kolom te krijgen

Eigenlijk is dit een geval voor Lookup. Het lijkt erop dat u wilt zoeken op naam en id wilt retourneren. Erg makkelijk. Hier is hoe ik hier een voorbeeld van heb gemaakt:

  1. Sleep een gegevensstroomtaak naar het ontwerpoppervlak. Dubbelklik erop om ernaar te schakelen.
  2. Maak een verbindingsmanager voor mijn database
  3. Sleep naar het ontwerpoppervlak:
    • een OLE DB-bron
    • Een opzoektransformatie
    • Een OLE DB-bestemming
  4. Verbind de bron met de zoekactie naar de bestemming. Het is de "Lookup Match Output" die we naar de bestemming willen gaan. Zie figuur 1.
  5. Configureer de bron. Mijn brontabel had alleen id- en naamkolommen.
  6. De zoekopdracht configureren
    • Tabblad Algemeen:Een OLE DB-verbinding gebruiken
    • Tabblad Verbinding:geef dezelfde verbinding op, maar gebruik de tabel Opzoeken. Mijn opzoektabel was alleen id en naam, maar de naam is uniek gemaakt, dus het is logischer als een opzoekkolom.
    • Configureer op het tabblad kolommen naam om aan naam toe te wijzen, met "id" als uitvoer. Configureer de opzoekbewerking als "nieuwe kolom toevoegen" en noem die kolom "lookupId". Zie figuur 2.
    • Negeer de andere twee tabbladen
  7. Configureer de uitvoer om alle drie de kolommen te bevatten. Zie figuur 3.

Dat is alles. Voor elke rij uit de bron wordt de naamkolom gebruikt om overeen te komen met de naamkolom van de opzoektabel. Elke overeenkomst draagt ​​zijn id-kolom bij als de nieuwe lookupId-kolom. Alle drie de kolommen gaan naar de bestemming.

Afbeelding 1:

Afbeelding 2:

Afbeelding 3:


  1. Databasespecifieke migratiecode

  2. Is er een functie in oracle die lijkt op group_concat in mysql?

  3. Vermijd het probleem met BigDecimal bij het migreren naar Java 1.4 naar Java 1.5+

  4. Kan de Sphinx-bèta in productie worden gebruikt?