none
Comparar tabelas e registros SQL Server RRS feed

  • Pergunta

  • Boa tarde,

    Eu tenho uma tabela (tabela1) onde faço um select e mando para outra tabela(tabela2). E isso é feito de 5 em cinco minutos, porque a todo momento está havendo insert na tabela 1.

    Porém sempre quando eu copio para a tabela2, eu tenho que deletar os registros que já existem, e copiar tudo de novo.

    Gostaria de saber se existe alguma forma de comparar os registros da tabela1 com os da tabela2 e copiar somente os que forem acrescentados por ultimo.

    Grato.

    quarta-feira, 22 de julho de 2015 20:14

Respostas

Todas as Respostas

  • Élcio,

    Utilize o comando EXISTS para identificar antes de inserir se o registro já existe na tabela de destino. Se não existe a instrução INSERT é executada, senão ele descarta o registro e faz a verificação no próximo registro.

    Segue abaixo um scritp T-SQL para você adaptar à sua necessidade:

    INSERT INTO TB_DESTINO (CD_PESSOA, NM_PESSOA, DT_NASCIMENTO)
    SELECT CD_PESSOA, NM_PESSOA, DT_NASCIMENTO
    FROM TB_ORIGEM AS ORG 
    WHERE EXISTS (
      SELECT 1 
      FROM TB_DESTINO AS DST
      WHERE DST.CD_PESSOA = ORG.CD_PESSOA 
    )
    GO

    Para maiores informações veja:

    https://msdn.microsoft.com/pt-br/library/ms188336%28v=sql.120%29.aspx

    https://technet.microsoft.com/pt-br/library/ms189259(v=sql.105).aspx


    Se ajudou na sua solução, não esqueça de marcar como resposta !


    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quarta-feira, 22 de julho de 2015 20:38
    Moderador
  • Deleted
    quarta-feira, 22 de julho de 2015 22:11
  • Boa tarde,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 31 de julho de 2015 18:45