none
CHANGE_TRAKING, configurei o database; a tabela a ser controlada está configurada - OK; alteraram a tabela, como voltar a versão desejada? RRS feed

  • Pergunta

  • Estou em uma sinuca de bico.
    Apliquei o controle de versão em um database, Adventureworks, por exemplo:

    USE [master]
    GO

    ALTER DATABASE [AdventureWorks]
    SET CHANGE_TRACKING = ON
    (
    CHANGE_RETENTION = 5 DAYS
    , AUTO_CLEANUP = OFF
    )
    GO

    Agora configurei a tabela:

    USE AdventureWorks
    ALTER TABLE Person.Person
    ENABLE CHANGE_TRACKING;

    A mão peluda que balança o berço, alterou a tabela, o que eu faço exatamente?
    Este controle de versão apenas registra a alteração ou permite um "rollback" para o estado anterior?
    Caso registre apenas a alteração onde eu verifico, caso restaure à tabela a versão anterior, como fazê-lo?
    Obrigado

    • Movido Gustavo Maia Aguiar quarta-feira, 18 de agosto de 2010 03:53 (De:SQL Server - Desenvolvimento Geral)
    quarta-feira, 18 de agosto de 2010 02:57

Todas as Respostas

  • Ronald,

    O que você habilitou foi o controle de versão do objeto. Change Tracking monitora todas as alterações sofridas sobre o objeto, mas quando você esta pensando em Rollback, esta querendo fazer um rollback das versões que este objeto apresenta?

    Você terá que utilizar os chamados ChangeTable para obter as informações que você deseja saber sobre uma table. Retorna as informações de controle de alterações de uma tabela.Você pode usar esta instrução para retornar todas as alterações de uma tabela ou as informações de controle de alterações de uma linha específica.

     


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    quarta-feira, 18 de agosto de 2010 13:08
    Moderador
  • Ronald,

    Você poderá desabilitar o Change Tracking sobre sua table da mesma forma que realizou a ativação.

     


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário]
    quarta-feira, 18 de agosto de 2010 13:17
    Moderador
  • Caro  Junior,

    Me perdoe pela demora, muito obrigado pelo interesse, mas te peço para me aturar um pouco mais é o seguinte: eu não entendi direito para que esse dispositivo funciona. Esse mecanismo registra a versão de um objeto, no caso a tabela XPTO, mas e aí se houver mudança? Ele volta ao estado anterior ou só avisa a você? E mais se á possível fazer este "rollback", como e onde consigo fazê-lo? Caso apenas avise, aonde eu busco a informação e como?
    Obrigado pela sua generosidade e interesse, mais uma vez perdoe-me pelo atrazo em entrar no forum, mas as coisas apertaram um pouco. Muito obrigado.

    sexta-feira, 29 de outubro de 2010 19:21
  • Ronanld,

    Vamos lá, espero poder ajudar.

    ms-help://MS.SQLCC.v10/MS.SQLSVR.v10.pt/s10de_1devconc/html/1c92ec7e-ae53-4498-8bfd-c66a42a24d54.htm

    Mas respondendo inicialmente a sua primeira pergunta:

    Esse mecanismo registra a versão de um objeto, no caso a tabela XPTO, mas e aí se houver mudança?

    --Cada mudança que vai ocorrendo na tabela que esta sendo monitorada, o SQL Server vai gerando versões do objeto.

    Os aplicativos que precisam sincronizar dados com uma instância do Mecanismo de banco de dados do SQL Server devem ser capazes de consultar alterações. O controle de alterações pode ser usado como uma base para aplicativos de sincronização unidirecional e bidirecional.


    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]
    sábado, 30 de outubro de 2010 13:35
    Moderador