none
Qual componente usar para gerar o script do banco de dados. RRS feed

  • Pergunta

  • Boa noite,

    Eu estou iniciando meus estudos no integration services.  Na verdade preciso saber qual componente devo usar  e basicamente como faço para usar. 

    Preciso gerar o script de criação do banco de dados com suas tabelas, procedures, funções e etc.. sem os dados. É como se fosse usar o generate script  no management studio.

    Como faço isso ?

     

    obrigado

     

     

     

     

    sábado, 16 de abril de 2011 03:05

Respostas

  • Boa Tarde,

    Embora seja possível, possivelmente você irá usar uma tarefa Script Task e codificar instruções para recuperar essas tarefas provavelmente referenciando bibliotecas SMO. O problema é que isso é um pouco trabalhoso e não acho que o SSIS é a melhor ferramenta para tal.

    Eu indicaria a criação de um aplicativo em .NET usando o SMO diretamente. Seria muito mais flexível que o Integration Services nesse caso. O propósito do Integration Services é basicamente trabalhar com ETL e não creio que essa seja uma tarefa apropriada para o SSIS.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta cavera399 terça-feira, 19 de abril de 2011 18:09
    sábado, 16 de abril de 2011 19:17
  • Maia,

    Concordo com a sua observação, pois a alguns dias em uma consultoria que estava fazendo fui questionado deste tipo de funcionalidade por parte do SSIS e foi um parto tentar implementar este tipo de solução.

    Normalmente eu gero o script database através do próprio Managment Studio, mas é claro com um volume pequeno de banco, quando a quantidade é considerável a coisa fica mais complicada.

     


    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]
    • Marcado como Resposta cavera399 terça-feira, 19 de abril de 2011 18:09
    domingo, 17 de abril de 2011 00:23
    Moderador

Todas as Respostas

  • Bom Dia,

    Você terá que gerar o script do banco dentro de um pacote SSIS ?
    Qual o objetivo desse passo ?

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    sábado, 16 de abril de 2011 04:24
  • Bom dia,

     

    Na verdade o objetivo é o seguinte. Preciso construir uma  solução onde faça o backup dos scripts da estrutura dos bancos de dados.  Ou seja, tenho umas 30 bases e gostaria de tornar esta tarefa dinâmica. Estava pensando em colocar um foreach para buscar as bases  e usar um componente para criar os  scripts.

     

    Pelo que pesquisei, para o analyses services existe uma função no integration services para gerar uma DDL do banco do analyses.  Agora gostaria de saber como faço para gerar para um banco de dados.

    sábado, 16 de abril de 2011 16:09
  • Boa Tarde,

    Embora seja possível, possivelmente você irá usar uma tarefa Script Task e codificar instruções para recuperar essas tarefas provavelmente referenciando bibliotecas SMO. O problema é que isso é um pouco trabalhoso e não acho que o SSIS é a melhor ferramenta para tal.

    Eu indicaria a criação de um aplicativo em .NET usando o SMO diretamente. Seria muito mais flexível que o Integration Services nesse caso. O propósito do Integration Services é basicamente trabalhar com ETL e não creio que essa seja uma tarefa apropriada para o SSIS.

    [ ]s,

    Gustavo Maia Aguiar
    http://gustavomaiaaguiar.wordpress.com


    Classifique as respostas. O seu feedback é imprescindível
    • Marcado como Resposta cavera399 terça-feira, 19 de abril de 2011 18:09
    sábado, 16 de abril de 2011 19:17
  • Maia,

    Concordo com a sua observação, pois a alguns dias em uma consultoria que estava fazendo fui questionado deste tipo de funcionalidade por parte do SSIS e foi um parto tentar implementar este tipo de solução.

    Normalmente eu gero o script database através do próprio Managment Studio, mas é claro com um volume pequeno de banco, quando a quantidade é considerável a coisa fica mais complicada.

     


    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]
    • Marcado como Resposta cavera399 terça-feira, 19 de abril de 2011 18:09
    domingo, 17 de abril de 2011 00:23
    Moderador
  • Hum... então complicou. Por que o volume de bases é muito grande e não programo em .Net.
    terça-feira, 19 de abril de 2011 18:08
  • Cavera399,

     

    Sinceramente, gerar scripts de banco de dados através do SSIS eu tive muito dificuldade e não achei a melhor soluçã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]
    terça-feira, 19 de abril de 2011 18:37
    Moderador
  • Pois é!!! ... gerar na 'mão' é sem condição.  Gostaria que fosse pelo SSIS pois assim poderia 'padronizar' e alinhar com outros pacotes que existem aqui na empresa. Vou dar uma melhor pesquisada e ver o que acho.  

     

      

    terça-feira, 19 de abril de 2011 19:47
  • Cavera399,

    Veja se você encontra alguma coisa no Simple-Talk e também do SQLServerCentral.


    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]
    segunda-feira, 25 de abril de 2011 17:31
    Moderador
  • Hum....

    vou dar uma procurada, estes sites eu não conhecia.  Assim, que achar uma solução eu posto ela aqui.

     

    segunda-feira, 25 de abril de 2011 18:57
  • Boa tarde colegas,

    então, demorei mas voltei. Bem... desde a última postagem, tive uma pequena evolução no problema acima.  Mas agora a pergunta é : Qual "Control Flow Itens" uso para executar um programa.exe dentro de SSIS ?

    A questão é o seguinte, para fazer o backup do script foi desenvolvido (não por mim) um "programinha".exe que  gera o script do banco de dados, no entanto, 1 por vez. Coloquei na job do sql e rodou legal.  Mas tenho mais de 100 bases para fazer a mesma coisa e se fosse somente isso eu faria na "mão" mesmo.  Mas com certeza estas bases vão aumentar e o controle disso vai ficar difícil. Preciso algo que seja dinâmico.

    Estava pensando em fazer o seguinte:   Eu já consigo pegar o nome de todas as bases que estão no SQL e guardá-las em uma tabela. A partir disso, faria um foreach no SSIS e passaria um paramentro que receberia  o nome das bases, que é o que necessito para executar o programa.

    Como sou novato em SSIS, pergunto qual é componente, que me permite "rodar" um executável dentro do SSIS ?

     

    Obrigado.

     

     

     

     

     

    quarta-feira, 18 de maio de 2011 20:51