Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base 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 poder usar o controle de alterações, você deve habilitar o controle de alterações no nível do banco de dados. O exemplo a seguir mostra como habilitar o controle de alterações usando as opções ALTER DATABASE SET.
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 ChangeTracking) . 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 T-SQL.
Você pode especificar as opções e CHANGE_RETENTION ao habilitar o controle de alterações e pode alterar os valores a qualquer momento depois que o AUTO_CLEANUP controle de alterações estiver habilitado.
O valor de retenção de alterações especifica o período de tempo durante o qual as informações de controle de alterações são mantidas. As informações de controle de alterações mais antigas do que 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 ser pelo menos tão longo quanto o período de tempo máximo entre sincronizações. Se um aplicativo obtiver alterações em intervalos maiores, os resultados retornados podem estar incorretos porque algumas das informações de alteração provavelmente foram removidas. Para evitar a obtenção de resultados incorretos, um aplicativo pode usar a função CHANGE_TRACKING_MIN_VALID_VERSION sistema para determinar se o intervalo entre as sincronizações foi muito longo.
Você pode usar a AUTO_CLEANUP opção 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, esteja ciente do seguinte:
Para usar o controle de alterações, o nível de compatibilidade do banco de dados deve ser definido como 90 ou superior. Se um banco de dados tiver um nível de compatibilidade inferior a 90, você poderá configurar o controle de alterações. No entanto, a função CHANGETABLE, que é usada para obter informações de 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 rastreio de alterações sejam consistentes. Por esse motivo, é altamente recomendável que o isolamento de instantâneo seja definido como
ONpara o banco de dados. Para obter mais informações, consulte Trabalhar com controle de alterações (SQL Server).
Habilitar o controle de alterações para uma tabela
O controlo de alterações tem de estar ativado para cada tabela que pretende controlar. Quando o controle de alterações está habilitado, as informações de controle de alterações são mantidas para todas as linhas na tabela que são 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 ativar o controlo de alterações para uma tabela no SQL Server Management Studio usando as Propriedades do Banco de Dados (página de ChangeTracking) na caixa de diálogo.
Quando a TRACK_COLUMNS_UPDATED opção é definida como ON, o Mecanismo de Banco de Dados do SQL Server armazena informações adicionais sobre quais colunas foram atualizadas para a tabela interna de controle de alterações. O controle de colunas pode permitir que um aplicativo sincronize apenas as colunas que foram atualizadas. Isso pode melhorar a eficiência e o desempenho. No entanto, como a manutenção de informações de rastreamento de coluna adiciona alguma sobrecarga de armazenamento extra, essa opção é definida como OFF por padrão.
Desabilitar o controle de alterações para uma tabela ou banco de dados
O controle de alterações deve primeiro ser desabilitado para todas as tabelas com controle de alterações antes que o controle de alterações possa ser definido como OFF para o banco de dados. Para determinar as tabelas que têm o controlo de alterações ativado para um banco de dados, use a vista de 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 registra alterações, você pode desabilitar o controle de alterações para o banco de dados. O exemplo a seguir mostra como desabilitar o controle de alterações para um banco de dados usando as opções ALTER DATABASE SET.
ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = OFF
Conteúdo relacionado
- Propriedades do Banco de Dados (ChangeTracking Page)
- opções ALTER DATABASE SET (Transact-SQL)
- Visualizações do catálogo de controle de alterações - sys.change_tracking_databases
- Visualizações do catálogo de controle de alterações - sys.change_tracking_tables
- Rastrear alterações de dados (SQL Server)
- Sobre o controle de alterações (SQL Server)
- Trabalhar com Dados de Mudança
- Gerenciar o Rastreio de Alterações (SQL Server)