Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SSIS - Esecuzione di una ricerca su un'altra tabella per ottenere la colonna correlata

In realtà, questo è un caso per Lookup. Sembra che tu voglia fare una ricerca per nome e restituire l'id. Abbastanza semplice. Ecco come ho creato un esempio di questo:

  1. Trascina un'attività di flusso di dati sull'area di progettazione. Fare doppio clic per passare ad esso.
  2. Crea un Connection Manager per il mio database
  3. Trascina sull'area di progettazione:
    • una sorgente OLE DB
    • Una trasformazione della ricerca
    • Una destinazione OLE DB
  4. Collega la Sorgente alla Ricerca alla Destinazione. È il "Risultato della corrispondenza di ricerca" che vogliamo andare a destinazione. Vedi figura 1.
  5. Configura la sorgente. La mia tabella di origine aveva solo colonne ID e nome.
  6. Configura la ricerca
    • Scheda Generale:utilizza una connessione OLE DB
    • Scheda Connessione:specificare la stessa connessione, ma utilizzare la tabella di ricerca. La mia tabella di ricerca era solo id e nome, ma il nome è stato reso univoco, quindi ha più senso come colonna di ricerca.
    • Nella scheda Colonne, configura il nome da mappare al nome, con "id" come output. Configura l'operazione di ricerca in modo che sia "aggiungi nuova colonna" e denomina quella colonna "lookupId". Vedi figura 2.
    • Ignora le altre due schede
  7. Configura l'output per accettare tutte e tre le colonne. Vedi figura 3.

È tutto. Per ogni riga dell'origine, la colonna del nome verrà utilizzata per corrispondere alla colonna del nome della tabella di ricerca. Ogni corrispondenza contribuirà con la sua colonna id come nuova colonna lookupId. Tutte e tre le colonne procederanno alla destinazione.

Figura 1:

Figura 2:

Figura 3: