none
Inserir dados em bases simultaneamente RRS feed

  • Discussão Geral

  • Boa tarde,

    gostaria de uma ajuda no seguinte, faço importação de arquivos em uma determinada base de dados, porém, preciso que ao mesmo tempo seja alimentado uma outra base de dados com os mesmos dados, como proceder?

    Exemplo pratico:

    Importo um arquivo XML e estes dados são gravados em meu banco SQL, quero exatamente os mesmos dados em outro banco SQL.

    • Tipo Alterado Marcos SJ sexta-feira, 4 de dezembro de 2015 14:28 O sistema não pode encontrar o arquivo especificado
    sexta-feira, 4 de dezembro de 2015 14:19

Todas as Respostas

  • Filipe,

    Uma possibilidade que pode ser aplicada seria utilizar alguma solução de replicação.

    Você deseja espelhar no outro banco todos os dados ou algo específico?


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 4 de dezembro de 2015 14:30
  • Algo especifico, na verdade do banco inteiro preciso apenas que 3 tabelas sejam inseridas simultaneamente em outra base de dados.
    sexta-feira, 4 de dezembro de 2015 14:41
  • Filipe,

    Então com certeza existem alguns cenários:

    1 - Criar um pacote no SSIS para realizar este tipo de procedimento;

    2 - Criar uma procedure para realizar a inserção dos dados de forma simultânea;

    3 - Configurar uma replicação transacional entre os dois bancos de dados;

    4 - Criar um trigger nas tabelas do primeiro banco e durante a inserção dos dados o trigger envia para outro banco estes dados fazendo uso de alguma procedure.

    Se são 3 tabelas o cenário é mais simples.


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 4 de dezembro de 2015 14:46
  • Junior,

    tem algum modelo de comando para tal procedimento, só para eu ter um molde, pois sou iniciante e preciso disso para resolver um problema.

    quarta-feira, 9 de dezembro de 2015 23:28
  • Filipe,

    O Microsoft SQL Server, oferece uma documentação chamada Books Online que pode ser instalada em conjunto com o produto, como também, pode ser acessada via internet, acredito que será o primeiro passo que você deve seguir para obter mais informações e conhecimento sobre cada opção.


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    quinta-feira, 10 de dezembro de 2015 13:34
  • Obrigado pela dica Junior, só preciso de mais uma:

    Consegui montar e o INSERT consegui fazer legal, agora preciso que se eu deletar ou atualizar informações automaticamente mude na outra tabela, como faço?

    Create trigger utrEnviarCMV

    ON wfiscal.M00001


    FOR INSERT

    AS

    BEGIN

    DECLARE @cdnota varchar(40),@idcodfiscal int, @dtescrituracao datetime, @sttipo varchar(1), @nmnumero varchar(19);

    select @cdnota = cdnota ,@idcodfiscal = idcodfiscal, @dtescrituracao = dtescrituracao, @sttipo = sttipo, @nmnumero = nmnumero
    from inserted

    Insert into wfiscal.M00111
    Values (@cdnota, @idcodfiscal, @dtescrituracao, @sttipo, @nmnumero)


    END

    sexta-feira, 11 de dezembro de 2015 13:09
  • Filipe,

    Para isso, você precisa descobrir qual foi o evento disparado, veja se este exemplo ajuda:

    Create Database Teste
    Go
    
    
    Use Teste
    Go
    
    Create Table T1
     (Codigo Int)
    
    Create Table T2
     (Codigo Int,
      Comando Varchar(10))
    Go
    
    Create Trigger Trigger1
    On T1
    After Insert, Update, Delete
    As
    Begin
    
     If Exists (Select * From Inserted) And Not Exists (Select * From Deleted)
      Insert Into T2 (Comando) Values ('Insert')
    
     If Exists (Select * From Inserted) And Exists (Select * From Deleted)
      Insert Into T2 (Comando) Values ('Update')
     
     If Not Exists (Select * From Inserted) And Exists (Select * From Deleted)
      Insert Into T2 (Comando) Values ('Delete')  
    
    End
    
    Insert Into T1 Values (1)
    Insert Into T1 Values (2)
    Insert Into T1 Values (3)
    Insert Into T1 Values (4)
    Insert Into T1 Values (5)
    
    Select * from T2


    Pedro Antonio Galvao Junior [MVP | MCC | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    terça-feira, 15 de dezembro de 2015 14:45