none
Como passar a tebela que deverá ser baixada dinamicamente? RRS feed

  • Pergunta

  • Boa Noite pessoal,

    O cenário é o seguinte: Tenho 9 pacotes, que buscam informações de um banco externo DB2 para o meu Sqlserver 2005. Cada pacote, tem aproximadamente 50 tabelas. São milhares de informaçõoes que estão levando em média 3 dias para baixar todas.

    Descobri uma forma de saber consultando a fonte, justamente as tabelas necessárias para a baixa, não sendo necessário baixar todas. No meu caso atual, tenho 450 tabelas em 9 pacotes diferentes. Eu precisaria baixar somente 40 tabelas.

    Hoje eu baixo as 450.

    Como eu poderia mudar o meu formato, para que baixe somente as 40 tabelas necessárias. Existe uma forma de fazer isso dinamicamente ou só baixando manual mesmo?

    Agradeço a todos que puderem opinar.

    sexta-feira, 14 de maio de 2010 21:09

Respostas

  • Sim vc consegue fazer isso no SSIS, uma idéia pra vc começar esse pacote é usar um Execute SQL Task que busca o nome de todas as tabelas que vc tem na base de dados de origem armazenando esses valores em uma variável do tipo Object.

    Use essa variável em um ForEach Loop Container e dentro desse Container use as Tasks que vc precisa.

    O grande segredo está na ligação das Constraints, use Expressions nas Constraints que avaliem o valor da variável que está no loop, ex: @OjetoTabela == 'Tablela_1', se essa condição for verdadeira ela executa a Task e seu pacote fica + dinâmico.

    De forma geral essa é a idéia, boa sorte!


    Wyllian de Lima - Se a resposta ajudou vote como útil !
    • Marcado como Resposta Richard Juhasz quinta-feira, 21 de julho de 2011 22:49
    segunda-feira, 17 de maio de 2010 12:56