none
Copia automatica de dados de uma tabela par outra tabela RRS feed

  • Pergunta

  • Bom dia..

    Gostaria de saber se é possível eu copiar automaticamente dados de uma tabela que esta em um banco de dados, par outra tabela de outro banco de dados, isso no sql server 2012, os dois bancos de dados estão no mesmo server, e se for possível como fazer, e também se este procedimento atrapalha o desempenho do banco de dados.

    Desde já agradeço.


    JUNIOR GUERREIRO T.I

    quinta-feira, 14 de junho de 2018 11:28

Respostas

  • Junior, o que você precisa nesse caso é uma TRIGGER.

    Pesquise melhor sobre TRIGGERs no SQL SERVER

    Uma trigger é um evento que é disparado automaticamente (antes ou depois) de uma atualização.

    Por exemplo: AFTER INSERT (depois do INSERT) em uma tabela.

    Vide a documentação oficial:

    TRIGGERS SQL

    Caso não se resolver com isso, ou tiver mais alguma dúvida que eu possa ajudar, poste aqui por favor.

    Um grande abraço.

    Anderson.


    quinta-feira, 14 de junho de 2018 12:23
  • Olá Junior,

    O link que coloquei na resposta anterior é a documentação oficial da própria Microsoft, contendo todos os parâmetros e entendimentos para criação de triggers.

    No seu caso, você precisa de uma trigger "AFTER INSERT"

    Por favor, não se esqueça de clicar em "Votar como útil" e "Marcar como Resposta". Isso é muito importante.

    Bons estudos.

    Anderson.

    • Marcado como Resposta Junior Guerreiro quinta-feira, 14 de junho de 2018 13:57
    quinta-feira, 14 de junho de 2018 13:14

Todas as Respostas

  • Olá Junior, bom dia.

    Não sei se entendi muito bem, mas o que me parece é que você precisa fazer o INSERT do resultado de um SELECT.

    Se assim for, imagine o seguinte cenário:

    databases: empresa1 e empresa2

    Ambos com a tabela produtos com a estrutura

    Codigo Int

    Descricao Varchar(50)

    Unidade char(2)

    Se você desejar inserir os dados do database2 em database1

    INSERT INTO EMPRESA1.PRODUTOS
    (CODIGO, DESCRICAO, UNIDADE)
    SELECT CODIGO, DESCRICAO, UNIDADE
    FROM EMPRESA2.PRODUTOS P2
    WHERE NOT EXISTS (SELECT CODIGO FROM EMPRESA1.PRODUTOS P1 WHERE P1.CODIGO = P2.CODIGO)

    Agora referente ao seu questionamento se isso atrapalha o desemprenho....

    Essa resposta depende de vários fatores:

    • Quantidade de registros envolvidos;
    • Índices afetados;
    • Concorrência com os dados;
    • Consultas que não utilizando (nolock);
    • entre outros;

    Espero ter ajudado. boa sorte!

    Um grande abraço.

    Anderson.

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    quinta-feira, 14 de junho de 2018 11:43
  • Bom dia Anderson, e obrigado pela atenção.

    Então não e isso não que estou pensando em fazer, e como um replace de banco de dados, por exemplo, quando realizo um insert na tabela A este insert também e feito na tabela B, isso automaticamente.


    JUNIOR GUERREIRO T.I

    quinta-feira, 14 de junho de 2018 11:51
  • Junior, o que você precisa nesse caso é uma TRIGGER.

    Pesquise melhor sobre TRIGGERs no SQL SERVER

    Uma trigger é um evento que é disparado automaticamente (antes ou depois) de uma atualização.

    Por exemplo: AFTER INSERT (depois do INSERT) em uma tabela.

    Vide a documentação oficial:

    TRIGGERS SQL

    Caso não se resolver com isso, ou tiver mais alguma dúvida que eu possa ajudar, poste aqui por favor.

    Um grande abraço.

    Anderson.


    quinta-feira, 14 de junho de 2018 12:23
  • Anderson e isso mesmo que eu preciso, se puder e tiver alguma vídeo aula que ensine a criar este tipo de Triggers, porque nunca criei uma Triggers,

    desde já agradeço.


    JUNIOR GUERREIRO T.I

    quinta-feira, 14 de junho de 2018 13:04
  • Olá Junior,

    O link que coloquei na resposta anterior é a documentação oficial da própria Microsoft, contendo todos os parâmetros e entendimentos para criação de triggers.

    No seu caso, você precisa de uma trigger "AFTER INSERT"

    Por favor, não se esqueça de clicar em "Votar como útil" e "Marcar como Resposta". Isso é muito importante.

    Bons estudos.

    Anderson.

    • Marcado como Resposta Junior Guerreiro quinta-feira, 14 de junho de 2018 13:57
    quinta-feira, 14 de junho de 2018 13:14
  • Obrigado Anderson

    JUNIOR GUERREIRO T.I

    quinta-feira, 14 de junho de 2018 13:57