Compartilhar via


Sobre o controle de alterações (SQL Server)

O controle de alterações é uma solução leve que fornece um mecanismo eficiente de controle de alterações para aplicativos. Em geral, para permitir que os aplicativos consultassem as alterações nos dados de um banco de dados e acessassem as informações relacionadas às alterações, os desenvolvedores de aplicativos precisavam implementar mecanismos personalizados de controle de alterações. A criação desses mecanismos geralmente envolvia muito trabalho e frequentemente envolvia o uso de uma combinação de gatilhos, timestamp colunas, novas tabelas para armazenar informações de acompanhamento e processos de limpeza personalizados.

Tipos distintos de aplicativos têm requisitos diferentes quanto à quantidade de informações que precisam sobre as alterações. Os aplicativos podem usar o controle de alterações para responder às seguintes perguntas sobre as alterações feitas na tabela de um usuário:

  • Que linhas da tabela de um usuário foram alteradas?

    • Só é necessário o fato de que uma linha foi alterada, e não quantas vezes ela foi alterada ou os valores das alterações intermediárias.

    • Os últimos dados podem ser obtidos diretamente da tabela que está sendo controlada.

  • Uma linha foi alterada?

    • O fato de que uma linha foi alterada e as informações sobre a alteração devem estar disponíveis e serem registrados no momento em que a alteração foi feita na mesma transação.

Observação

Se um aplicativo exigir informações sobre todas as alterações que foram feitas e os valores intermediários dos dados alterados, usar a captura de dados de alteração, em vez de controle de alterações, poderá ser apropriado. Para obter mais informações, consulte Sobre a captura de dados de alterações (SQL Server).

aplicativos de sincronização One-Way e Two-Way

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

One-Way Aplicativos de Sincronização

Aplicativos de sincronização unidirecional, como um cliente ou um aplicativo de cache de camada intermediária, podem ser criados que usam o controle de alterações. Como mostra a ilustração a seguir, um aplicativo em cache exige que os dados sejam armazenados no Mecanismo de Banco de Dados e armazenados em cache em outros armazenamentos de dados. O aplicativo deve ser capaz de manter o cache atualizado com as alterações feitas nas tabelas do banco de dados. Não há nenhuma alteração para devolver ao Mecanismo de Banco de Dados.

Mostra aplicativos de sincronização unidirecional

Two-Way Aplicativos de Sincronização

Aplicativos de sincronização bidirecional também podem ser criados que usam o controle de alterações. Neste cenário, os dados em uma instância do Mecanismo de Banco de Dados são sincronizados com um ou mais repositórios de dados. Os dados nesses repositórios podem ser atualizados, e as alterações devem ser sincronizadas novamente com o Mecanismo de Banco de Dados.

Mostra aplicativos de sincronização bidirecional

Um bom exemplo de aplicativo de sincronização bidirecional é um aplicativo conectado ocasionalmente. Nesse tipo de aplicativo, um aplicativo cliente consulta e atualiza um repositório local. Quando uma conexão está disponível entre o cliente e o servidor, o aplicativo se sincroniza com o servidor e os dados modificados fluem em ambas as direções.

Os aplicativos de sincronização bidirecional devem ser capazes de detectar conflitos. Um conflito ocorreria se os mesmos dados fossem alterados em ambos os armazenamentos de dados no tempo entre sincronizações. Com a capacidade de detectar conflitos, um aplicativo pode garantir que as alterações não sejam perdidas.

Como funciona o controle de alterações

Para configurar o controle de alterações, você pode usar instruções DDL ou SQL Server Management Studio. Para obter mais informações, consulte Habilitar e desabilitar o Controle de Alterações (SQL Server). Para controlar as alterações, o controle de alterações deve primeiro ser habilitado para o banco de dados e, em seguida, habilitado para as tabelas que você deseja rastrear dentro desse banco de dados. A definição da tabela não precisa ser alterada de forma alguma e nenhum gatilho é criado.

Depois que o controle de alterações for configurado para uma tabela, qualquer instrução DML que afete linhas na tabela fará com que as informações de controle de alterações para cada linha modificada sejam registradas. Para consultar as linhas que foram alteradas e obter informações sobre as alterações, você pode usar funções de controle de alterações.

Os valores da coluna de chave primária são apenas as informações da tabela rastreada que são registradas junto com as informações de mudança. Esses valores identificam as linhas que foram alteradas. Para obter os últimos dados sobre essas linhas, um aplicativo pode usar os valores da coluna de chave primária para unir a tabela de origem à tabela controlada.

Informações sobre a alteração feita em cada linha também podem ser obtidas usando o controle de alterações. Por exemplo, o tipo de operação DML que causou a alteração (inserir, atualizar ou excluir) ou as colunas que foram alteradas como parte de uma operação de atualização.

Consulte Também

Habilitar e desabilitar o controle de alterações (SQL Server)
Trabalhar com o controle de alterações (SQL Server)
Gerenciar o controle de alterações (SQL Server)
Rastrear alterações de dados (SQL Server)