Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SSIS - Executando uma pesquisa em outra tabela para obter a coluna relacionada


Na verdade, este é um caso para Lookup. Parece que você quer fazer uma pesquisa por nome e id de retorno. Bem simples. Veja como eu criei um exemplo disso:
  1. Arraste uma tarefa de fluxo de dados para a superfície de design. Clique duas vezes nele para alternar para ele.
  2. Criar um gerenciador de conexões para meu banco de dados
  3. Arraste para a superfície de design:
    • uma fonte OLE DB
    • Uma transformação de pesquisa
    • Um destino OLE DB
  4. Conecte a Origem à Pesquisa ao Destino. É a "Saída de correspondência de pesquisa" que queremos que vá para o destino. Veja a figura 1.
  5. Configure a fonte. Minha tabela de origem tinha apenas as colunas id e name.
  6. Configurar a pesquisa
    • Guia Geral:use uma conexão OLE DB
    • Guia Conexão:especifique a mesma conexão, mas use a tabela de pesquisa. Minha tabela de pesquisa era apenas id e nome, mas o nome se tornou único, então faz mais sentido como uma coluna de pesquisa.
    • Na guia de colunas, configure name para mapear para name, com "id" como saída. Configure a operação de pesquisa como "adicionar nova coluna" e nomeie essa coluna como "lookupId". Veja a figura 2.
    • Ignore as outras duas guias
  7. Configure a saída para receber todas as três colunas. Veja a figura 3.

Isso é tudo. Para cada linha da origem, a coluna de nome será usada para corresponder à coluna de nome da tabela de pesquisa. Cada correspondência contribuirá com sua coluna id como a nova coluna lookupId. Todas as três colunas prosseguirão para o destino.

Figura 1:


Figura 2:


Figura 3: