You are on page 1of 4

Bruno Vilela Ola!!! Sou Vilela , 29 anos casado 02 filhos e atualmente participo de projetos na empresa J&J Consultoria.

Visualizar meu perfil completo

(ETL VIA SSIS)
SQL 2008 SSIS Lookup O componente de transformação Lookup combina as linhas de uma origem (OLEDB SOURCE) com um DataSet que será informado diretamente nas configurações do próprio componente Lookup. Desta forma, o Lookup é tido como um componente que combina dois inputs. A combinação é feita via equi-joining, isto é, junção por igualdade, escolhendo-se as colunas ou coluna que serão usadas para fazer a igualdade, produzindo um output populado. Este componente de transformação se enquadra como multi-input ou multi-output transformation. Na guia Columns do componente lookup nós configuramos as colunas que farão o relacionamento entre os inputs, através de mapeamento. É possível deixar as colunas do input DataSet como novas ou fazer replace sobre as colunas do input que se refere ao OLEDB SOURCE. O detalhe é que no OLEDB DESTINATION nós definimos quais colunas de qual input serão gravadas o resultado. Exemplo: levantar quais empregados da tabela Empregado1 moram no mesmo estado que os empregados da tabela Empregado2. Neste simples cenário, nós desejamos gravar numa terceira tabela (empregado3) uma lista das tabelas empregado1 e

Inicialmente crie as tabelas e faça os inserts conforme script abaixo. 'RJ').Empregado1 ( IdEmpregado INT IDENTITY PRIMARY KEY. GO USE VILELA GO --– as tabelas empregado 1 e 2 serão utilizadas para a package referente ao Lookup CREATE TABLE dbo. NmEmpregado VARCHAR(50) NOT NULL. NmEmpregado VARCHAR(50) NOT NULL. 'MG') GO --– a tabela empregado 3 guardará a lista de empregados que moram no mesmo estado --– como resultado do etl CREATE TABLE dbo.Empregado3 . ) CREATE TABLE dbo. 'SP'). Melhorando o exemplo podemos gravar numa quarta tabela (empregado4) a lista de empregados da tabela empregado1 que não residem em nenhum dos estados dos empregados da tabela empregado2. use master go if db_id('VILELA') is not null begin alter database VILELA set single_user with rollback immediate. ) GO INSERT dbo. ('Breno Vilela'. DmUF CHAR(2) NOT NULL. 'ES').Empregado1 VALUES ('Bruno Vilela'.empregado2 que moram no mesmo estado.Empregado2 ( IdEmpregado INT IDENTITY PRIMARY KEY. end. 'ES').Empregado2 VALUES ('Vanessa Vilela'. 'ES') INSERT dbo. DmUF CHAR(2) NOT NULL. ('Julya Vilela'. ('Jeferson Arthur'. ('Julya Vilela'. drop database VILELA. create database VILELA ALTER DATABASE VILELA SET RECOVERY SIMPLE. Segue o passo a passo.

Para tanto. configure para usar a tabela empregado2: Na guia Columns faça o mapeamento do relacionamento usando as colunas UF de ambas as tabelas. edite-a e insira um OLE DB SOURCE.Configure o OLE DB SOURCE para usar empregado1. e dois OLE DB DESTINATION.Empregado4 ( IdEmpregado INT. utilizando a opção Edit Mappings. Na package vazia crie uma conexão do OLE DB CONNECTION apontando para o banco DBSSIS. NmEmpregado VARCHAR(50) NOT NULL. Insira uma Data Flow Task dentro do Control Flow. ) GO --– a tabela empregado 4 guardará a lista de empregados que não moram no mesmo estado --– como resultado do etl CREATE TABLE dbo. arraste a coluna DmUF de uma tabela para outra ou clique com o botão direito do mouse. IdEmpregado2 INT. Nas colunas Output Alias renomeie conforme figura abaixo: . ) GO Como segundo passo crie um novo projeto no ssis. NmEmpregado2 VARCHAR(50) NOT NULL. um Lookup. DmUF CHAR(2) NOT NULL.( IdEmpregado1 INT. DmUF CHAR(2) NOT NULL. NmEmpregado1 VARCHAR(50) NOT NULL. conforme figura abaixo: Configure na guia Connection do componente Lookup.

o seu Data Flow Task terá a seguinte aparência: . Edite a guia Mappings conforme abaixo: Pronto. Após esses passos.OBS:Na guia geral .a opção "Specify how to handle rows with no matching entries" selecione a opção "redirect rows to no match output" Ligue uma seta verde do Lookup ao primeiro OLE DB DESTINATION. Edite o OLE DB DESTINATION e seleciona a empregado3. Finalmente ligue a segunda setinha verde do Lookup para o segundo OLE DB DESTINATION selecionando Lookup No Match Output. selecionando Lookup Match Output. Edite a conexão deste OLE DB DESTINATION para usar a tabela empregado4.