none
Usando tabelas temporárias em um pacote RRS feed

  • Pergunta

  • Boa tarde,

     

    Estou criando um pacote no SSIS e preciso popular uma tabela temporária com dados de um banco para poder inserir em outro banco. Li alguns posts, blogs e fiz o que disseram..


    Coloquei a propriedade DelayValidation de todos os componentes para TRUE e a propriedade RetainSameConnection das minhas conexões como TRUE também.

    Em uma  SQL Task eu cria e populo a tabela temporária e no OLE DB Source eu uso SQL Command fazendo um SELECT na minha tabela temporária e colocando isso num Flat File Destination.

    Porém quando executo o pacote, dá erro dizendo que a tabela temporária não pode ser encontrada.

    Pra mim não serve criar uma tabela temporária global pelo SSMS e usá-la no meu pacote (como li em alguns fóruns). Preciso fazer isso dentro do próprio pacote.


    Estou mexendo com o SSIS há duas semanas apenas então me desculpem se a questão for muito básica..


    Obrigada pela ajuda.


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */
    sexta-feira, 23 de setembro de 2011 16:50

Respostas

  • Del Nero,

    Sinceramente este tipo de procedimento é bastante confuso, pois quando criamos uma table temporária, sua visualização esta relacionado ao banco de dados que esta tabela esta sendo criada, mas fisicamente ela estará armazenada no banco TEMPDB.

    Faça um teste, ao invês de criar a tabela temporário no SSIS, crie diretamente no Management Studio e dentrod o seu projeto dente acessar esta table.

    Outro detalhe, quando executamos um package no SSIS é criada uma sessão específica para executar o pacote, desta forma, a table temporária não será reconhecida na sessão.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    sábado, 24 de setembro de 2011 13:22
    Moderador

Todas as Respostas

  • Del Nero,

    Sinceramente este tipo de procedimento é bastante confuso, pois quando criamos uma table temporária, sua visualização esta relacionado ao banco de dados que esta tabela esta sendo criada, mas fisicamente ela estará armazenada no banco TEMPDB.

    Faça um teste, ao invês de criar a tabela temporário no SSIS, crie diretamente no Management Studio e dentrod o seu projeto dente acessar esta table.

    Outro detalhe, quando executamos um package no SSIS é criada uma sessão específica para executar o pacote, desta forma, a table temporária não será reconhecida na sessão.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    sábado, 24 de setembro de 2011 13:22
    Moderador
  • Boa noite Junior,

     

    Se eu criar a tabela diretamente no Management Studio, consigo utilizar essa tabela no meu pacote, mas isso não atende as minhas necessidades.

    O problema é que nao posso criar uma tabela fisica no banco para fazer o que preciso e depois apagar essa tabela (isso é inviável num ambiente de produção).

    Me disseram que eu consigo resolver meu problema usando o Lookup. Irei estudar sobre o assunto e ver se consigo resolver..


    Muito obrigada pela ajuda.

     

    []'s

     


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */
    domingo, 25 de setembro de 2011 22:46
  • Del Nero,

    O Lookup pode ser uma possibilidade de utilizar dados entre tables distintas dentro de um mesmo repositório.

    Utilizar componentes ou campos lookup é uma técnica bastante conhecida de diversas linguagens de programação.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    domingo, 2 de outubro de 2011 22:06
    Moderador