none
Qdo linha sofreu update RRS feed

  • Pergunta

  • pessoal,

    Gostaria se saber se existe alguma forma de saber quando algumas linhas de minha tabela foram alteradas ou quais as alteroces foram feitas nos registros desde a criacao da mesma.

    Abracos

    quarta-feira, 7 de maio de 2014 19:26

Respostas

  • AGA Neto,

    Você tem várias opções para executar esta tarefa, todas devem ter uma configuração ou codificação sua:

    - Você pode criar uma tabela de Log alimentada por uma trigger para obter os dados alterados e os atuais(antes do UPDATE), ou;

    - Você pode criar uma tabela Histórico para indicar quem alterou, quando,... através de uma stored procedure para inserir os dados para com a informação de todos os campos antes e depois do UPDATE (ou apenas dos campos alterados), ou;

    - Você pode utilizar os recursos do CDC (Change Data Capture) para controlar as versões de cada registro (porém com cuidados para que o consumo não atrapalhe o desempenho de sua instância SQL);

    Para maiores informações sobre trigger, procedures e CDC veja:

    http://msdn.microsoft.com/pt-br/library/ms189799.aspx

    http://msdn.microsoft.com/pt-br/library/ms187926.aspx

    http://technet.microsoft.com/pt-br/library/bb522506.aspx

    http://blogs.technet.com/b/sql_server_isv/archive/2010/12/02/change-data-capture-what-is-it-and-how-do-i-use-it.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"
    • Marcado como Resposta AGA Neto quarta-feira, 7 de maio de 2014 19:57
    quarta-feira, 7 de maio de 2014 19:44
    Moderador
  • vc pode fazer uma trigger de insert, update e delete nas tabelas que você deseja, que geraria uma espécie de auditoria.

    mais qual seria seu objetivo?

    Pois nesse assunto entre replicação, backup e restauração de log e por ai vai, tudo depende da necessidade.


    Marquinhos Não esqueça de qualificar a resposta.

    • Marcado como Resposta AGA Neto quarta-feira, 7 de maio de 2014 19:57
    quarta-feira, 7 de maio de 2014 19:36

Todas as Respostas

  • vc pode fazer uma trigger de insert, update e delete nas tabelas que você deseja, que geraria uma espécie de auditoria.

    mais qual seria seu objetivo?

    Pois nesse assunto entre replicação, backup e restauração de log e por ai vai, tudo depende da necessidade.


    Marquinhos Não esqueça de qualificar a resposta.

    • Marcado como Resposta AGA Neto quarta-feira, 7 de maio de 2014 19:57
    quarta-feira, 7 de maio de 2014 19:36
  • Alguem sobrescreveu uma linha e eu precisava saber dos dados anteriores.

    Ou pelo menos saber qdo uma linha nova é inserida

    quarta-feira, 7 de maio de 2014 19:39
  • AGA Neto,

    Você tem várias opções para executar esta tarefa, todas devem ter uma configuração ou codificação sua:

    - Você pode criar uma tabela de Log alimentada por uma trigger para obter os dados alterados e os atuais(antes do UPDATE), ou;

    - Você pode criar uma tabela Histórico para indicar quem alterou, quando,... através de uma stored procedure para inserir os dados para com a informação de todos os campos antes e depois do UPDATE (ou apenas dos campos alterados), ou;

    - Você pode utilizar os recursos do CDC (Change Data Capture) para controlar as versões de cada registro (porém com cuidados para que o consumo não atrapalhe o desempenho de sua instância SQL);

    Para maiores informações sobre trigger, procedures e CDC veja:

    http://msdn.microsoft.com/pt-br/library/ms189799.aspx

    http://msdn.microsoft.com/pt-br/library/ms187926.aspx

    http://technet.microsoft.com/pt-br/library/bb522506.aspx

    http://blogs.technet.com/b/sql_server_isv/archive/2010/12/02/change-data-capture-what-is-it-and-how-do-i-use-it.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"
    • Marcado como Resposta AGA Neto quarta-feira, 7 de maio de 2014 19:57
    quarta-feira, 7 de maio de 2014 19:44
    Moderador
  • AGA Neto,

    Eu particularmente prefiro trabalhar como CDC ou uma Tabela de Histórico!!!!

    Inclusive sobre o CDC eu tenho uma série de artigos publicados no meu Blog, acesse: pedrogalvaojunior.wordpress.com

    O trigger é uma possibilidade legal e prática, mas tem que ser bem implementada para não gerar impactos de performance.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 7 de maio de 2014 19:59