none
Atualizar objetos do banco RRS feed

  • Discussão Geral

  •   Boa Tarde!

      Tenho algumas duvidas da melhor forma de atualizar as alterações nas bases de dados, como novos campos em tabelas, procedures, etc. Gostaria de saber dos colegas, como é realizado essas atualizações que precisam ser feitas nas bases dos clientes, pois de uma versão para outra de uma aplicação podem haver muitos objetos de banco alterados ou adicionados e gostaria de automatizar as atualizações nas bases.

      No Sql Server Management possui algo que pode realizar esse trabalho de forma mais automática?

       Eu teria 2 cenários:  

        1) 1 Banco com Multiplos schemas, onde cada schema possui os mesmos objetos e com isso teria que sempre atualizar todos os schemas. 

        2) 1 Banco Comum para todas as empresas e 1 banco para cada Empresa, onde as atualizaçòes devem ser feitas em todas as empresas.

       Agradeço toda a colaboração.

       Cristiano

    terça-feira, 28 de abril de 2015 20:15

Todas as Respostas

  • Pelo o que entendi você quer fazer uma reaplicação de dados

    banco de dados que replica dados para todas as outras empresas e isso ?


    Links exemplos

    http://www.linhadecodigo.com.br/artigo/1473/sql-server-replication-passo-a-passo.aspx

    https://msdn.microsoft.com/pt-br/library/ms151799.aspx?f=255&MSPPError=-2147217396

    https://pessoalex.wordpress.com/2008/11/23/replicacao-de-dados-passo-a-passo-utilizando-o-sql-server-2008/


    Atenciosamente,
    José Henrique Sabino

    quarta-feira, 29 de abril de 2015 03:27
  •  Não José,

      Eu quero uma forma de automatizar alteração de novos campos adicionados em tabelas, etc.  referente a estrutura do banco.

      Ex: Tenho 5 bases de clientes e na nova versão do sistema possui novos campos, alteração de procedure e triggers, etc.  Queria ver uma forma prática de autualizar todas as estruturas dos clientes.

     

    quarta-feira, 29 de abril de 2015 11:32
  • Cristiano, bom dia.

    Na empresa onde trabalho temos duas formas: a primeira é via script mesmo. No fechamento da versão alguém é responsável por pegar todos os objetos de banco de dados alterados e montar um pacote que separamos em DML  e DDL (um somente para índices pela demora na execução deste e outro para os demais objetos).

    A outra maneira é um programa que fizemos que faz a comparação de um "script da versão" com a base do cliente no momento da atualização. Cada diferença detectada é feita na base do cliente.

    Tentamos usar o DataTools do Visual Studio, mas na minha opinião, ele é limitado e eu não aplicaria um dacpac gerado ali numa base de produção (para ambientes de testes é muito bom).

    Existem algumas ferramentas de terceiros (ex. Red Gate - SQL Compare) que fazem a comparação de bases com muito mais opções e parametrizações, mas é manual também.

    Desconheço uma forma automática de fazer isso até mesmo pelas decisões que devem ser tomadas. Exemplo: algumas alterações em tabela exigem a criação de uma nova tabela, movimentaçao de dados e exclusão da tabela antiga. Você deve deixar isso acontecer no seu cliente? E se a base for grande vai demorar bastante. 

    Logo automatização disso é um pouco complicado.


    Mariana Del Nero /* Se a resposta foi útil, não esqueça de marcá-la */

    quarta-feira, 29 de abril de 2015 12:34