locked
Atualizacao de banco de dados RRS feed

  • Pergunta

  • Amigos bom dia !!!

    Tenho a seguinte situacao. Uma mesma instancia varios BD tenho uma base oficial e outra de teste. Como posso atualizar automaticamente (espelho) de uma base na outra sem ter que usar o DTS. exemplo: Cadastrado um cliente no banco X1 e logo em seguida ele ja estar cadastrado no X2 ?

    Grato

    Fabricio Brandao
    sexta-feira, 13 de junho de 2008 14:43

Todas as Respostas

  • Fabricio,

     

    Se você estivesse utilizando o SQL Server 2005 isso seria mais fácil.

     

    Outra possibilidade seria utilizar um trigger, mas o trigger é possível de ser utilizado somente em objetos do mesmo banco de dados, e não entre bancos.

     

     

    segunda-feira, 16 de junho de 2008 12:19
    Moderador
  • Você pode utilizar triggers (sim, eles funcionam até entre banco de dados em servidores diferentes) para realizar essa atualização. Com um 
    triggers, logo que um INSERT, UPDATE ou DELETE é feito na tabela do banco X1, automaticamente a mesma é alterada no banco X2.

    Só que desse jeito tem um problema sério. Se o banco X2 ficar fora do ar, as transações do banco X1 não vão conseguir ser processadas e isso é
    arriscado.

    Outra saída seria você configurar a replicação ou o Log Shipping
    segunda-feira, 16 de junho de 2008 19:54
  • Guilherme,

     

    Triggers entre bancos de dados no SQL Server 2000!!!

     

    Isso eu desconheço.

     

    segunda-feira, 16 de junho de 2008 19:58
    Moderador
  • Guilherme,

     

    Parabéns, pela informação.

     

    Acabei de realizar alguns testes aqui entre bancos diferentes na mesma instância e funcionou.

     

    Você esta certo.

    segunda-feira, 16 de junho de 2008 20:04
    Moderador
  • Pois é mas funciona sim

    CREATE DATABASE BD1
    GO

    CREATE DATABASE BD2
    GO

    USE BD2
    GO

    CREATE TABLE T (ID INT)
    GO

    USE BD1
    GO

    CREATE TABLE T (ID INT)
    GO

    CREATE TRIGGER TR ON T
    FOR INSERT
    AS
    BEGIN
    INSERT INTO BD2..T
    SELECT ID FROM INSERTED
    END
    GO

    INSERT INTO T VALUES (1)

    SELECT ID FROM BD1..T
    SELECT ID FROM BD2..T
    segunda-feira, 16 de junho de 2008 20:31
  • Amigo,

    Que bom que foi util.

    Não esqueça de classificar.
    segunda-feira, 16 de junho de 2008 20:47