Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Banco de dados SQL no Microsoft Fabric
Este artigo descreve como habilitar e desabilitar o controle de alterações para um banco de dados e uma tabela.
Habilitar o controle de alterações para um banco de dados
Antes de usar o controle de alterações, você deve habilitar o controle de alterações no nível de banco de dados. O exemplo a seguir mostra como habilitar o controle de alterações usando ALTER DATABASE SET opções.
ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)
Você também pode habilitar o controle de alterações no SQL Server Management Studio usando a caixa de diálogo Propriedades do Banco de Dados (Página Controle de Alterações). Se um banco de dados contiver tabelas com otimização de memória, você não poderá habilitar o controle de alterações com o SQL Server Management Studio. Para habilitar, use o T-SQL.
Você pode especificar as opções CHANGE_RETENTION e AUTO_CLEANUP ao habilitar o controle de alterações, e pode alterar os valores a qualquer momento depois que o controle de alterações for habilitado.
O valor de retenção de alterações especifica o período durante o qual as informações de rastreamento de alterações são mantidas. Informações do controle de alterações anteriores a esse período de tempo são removidas periodicamente. Ao definir esse valor, você deve considerar a frequência com que os aplicativos serão sincronizados com as tabelas no banco de dados. O período de retenção especificado deve ter pelo menos a duração do período de tempo máximo entre as sincronizações. Se um aplicativo obtém as alterações em intervalos maiores, os resultados retornados podem ser incorretos porque algumas informações de alterações podem ter sido removidas. Para evitar resultados incorretos, um aplicativo pode usar a função de sistema CHANGE_TRACKING_MIN_VALID_VERSION para determinar se o intervalo entre as sincronizações foi muito longo.
Você pode usar a opção AUTO_CLEANUP para habilitar ou desabilitar a tarefa de limpeza que remove informações antigas de controle de alterações. Isso pode ser útil quando há um problema temporário que impede a sincronização de aplicativos e o processo de remoção de informações de controle de alterações anteriores ao período de retenção deve ser pausado até que o problema seja resolvido.
Para qualquer banco de dados que use o controle de alterações, lembre-se do seguinte:
Para usar o controle de alterações, o nível de compatibilidade do banco de dados deve ser definido como 90 ou mais. Se o nível de compatibilidade de um banco de dados for inferior a 90, você poderá configurar o controle de alterações. No entanto, a função CHANGETABLE, usada para obter informações do controle de alterações, retornará um erro.
Usar o isolamento de instantâneo é a maneira mais fácil de ajudar a garantir que todas as informações de rastreamento de alterações sejam consistentes. Por esse motivo, recomendamos fortemente que o isolamento de instantâneo seja definido como
ONno banco de dados. Para obter mais informações, consulte Trabalho com controle de alterações (SQL Server).
Habilitar o controle de alterações para uma tabela
O controle de alterações deve ser habilitado para cada tabela que você deseja controlar. Quando o controle de alterações está habilitado, são mantidas informações sobre todas as linhas da tabela afetadas por uma operação DML.
O exemplo a seguir mostra como habilitar o controle de alterações para uma tabela usando ALTER TABLE.
ALTER TABLE Person.Contact
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)
Você também pode habilitar o controle de alterações para uma tabela no SQL Server Management Studio usando a caixa de diálogo Propriedades do Banco de Dados (Página Controle de Alterações).
Quando a opção TRACK_COLUMNS_UPDATED é definida como ON, o Mecanismo de Banco de Dados do SQL Server armazena informações extras sobre quais colunas foram atualizadas para a tabela interna de controle de alterações. O controle de coluna pode permitir a um aplicativo sincronizar apenas as colunas que foram atualizadas. Isso pode melhorar a eficiência e o desempenho. No entanto, como manter informações de rastreamento de coluna adiciona uma sobrecarga extra de armazenamento, essa opção é definida como OFF por padrão.
Desabilitar o controle de alterações de uma tabela ou banco de dados
O controle de alterações deve primeiro ser desabilitado para todas as tabelas controladas por alterações antes que o controle de alterações possa ser definido OFF para o banco de dados. Para determinar as tabelas que tenham o controle de alterações habilitadas em um banco de dados, use a exibição do catálogo sys.change_tracking_tables .
O exemplo a seguir mostra como desabilitar o controle de alterações para uma tabela usando ALTER TABLE.
ALTER TABLE Person.Contact
DISABLE CHANGE_TRACKING;
Quando nenhuma tabela em um banco de dados controla as alterações, você pode desativar o controle de alterações do banco de dados. O exemplo a seguir mostra como desabilitar o controle de alterações para um banco de dados usando ALTER DATABASE SET opções.
ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = OFF
Conteúdo relacionado
- Propriedades do banco de dados (página ChangeTracking)
- ALTER DATABASE SET opções (Transact-SQL)
- Exibições do catálogo de controle de alterações – sys.change_tracking_databases
- Exibições do catálogo de controle de alterações – sys.change_tracking_tables
- Controlar alterações de dados (SQL Server)
- Sobre o controle de alterações (SQL Server)
- Trabalhar com os dados de alterações
- Gerenciar o controle de alterações (SQL Server)