Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SSIS - Effectuer une recherche sur une autre table pour obtenir une colonne associée

En fait, c'est un cas pour Lookup. Il semble que vous souhaitiez effectuer une recherche par nom et par identifiant de retour. Assez simple. Voici comment j'ai créé un exemple :

  1. Faites glisser une tâche de flux de données sur l'aire de conception. Double-cliquez dessus pour y accéder.
  2. Créer un gestionnaire de connexion pour ma base de données
  3. Faites glisser sur la surface de conception :
    • une source OLE DB
    • Une transformation de recherche
    • Une destination OLE DB
  4. Connectez la source à la recherche à la destination. C'est la "Lookup Match Output" que nous voulons envoyer à la destination. Voir figure 1.
  5. Configurez la source. Ma table source n'avait que des colonnes id et name.
  6. Configurer la recherche
    • Onglet Général :Utiliser une connexion OLE DB
    • Onglet Connexion :spécifiez la même connexion, mais utilisez la table de recherche. Ma table de recherche était juste un identifiant et un nom, mais le nom a été rendu unique, il est donc plus logique en tant que colonne de recherche.
    • Sur l'onglet des colonnes, configurez le nom pour le mapper au nom, avec "id" comme sortie. Configurez l'opération de recherche sur "ajouter une nouvelle colonne" et nommez cette colonne "lookupId". Voir figure 2.
    • Ignorer les deux autres onglets
  7. Configurez la sortie pour prendre les trois colonnes. Voir figure 3.

C'est tout. Pour chaque ligne de la source, la colonne de nom sera utilisée pour correspondre à la colonne de nom de la table de recherche. Chaque correspondance contribuera sa colonne id en tant que nouvelle colonne lookupId. Les trois colonnes se dirigeront vers la destination.

Image 1 :

Illustration 2 :

Illustration 3 :