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.
Este tópico 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.
ALTER DATABASE AdventureWorks2012
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 ).
Você pode especificar as opções CHANGE_RETENTION e AUTO_CLEANUP quando habilitar o controle de alterações e alterar os valores a qualquer momento depois que o controle de alterações estiver habilitado.
O valor de retenção de alteração especifica o período para 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 ter pelo menos a duração do período de tempo máximo entre as sincronizações. Se um aplicativo obtiver alterações em intervalos mais longos, os resultados retornados poderão estar incorretos porque algumas das informações de alteração provavelmente foram 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.
Use 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 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 do instantâneo é o modo mais fácil de garantir que todas as informações do controle de alterações sejam consistentes. Por esse motivo, é altamente recomendável que o isolamento de instantâneos seja definido como ativado para o banco de dados. Para obter mais informações, consulte Work with Change Tracking (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 acompanhar. 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 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 ChangeTracking ).
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 acompanhamento de coluna adiciona alguma sobrecarga de armazenamento extra, essa opção é definida como OFF por padrão.
Desabilitar o controle de alterações para um banco de dados ou tabela
É necessário desabilitar o controle de alterações em todas as tabelas com alterações controladas, antes que o controle de alterações seja definido como OFF no banco de dados. Para determinar as tabelas que têm o controle de alterações habilitado para um banco de dados, use a exibição de catálogo sys.change_tracking_tables.
Quando nenhuma tabela de um banco de dados controlar as alterações, você pode desabilitar o controle de alterações no banco de dados. O exemplo a seguir mostra como desabilitar o controle de alterações para um banco de dados usando ALTER DATABASE.
ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING = OFF
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;
Consulte Também
Propriedades do banco de dados (página ChangeTracking)
Opções ALTER DATABASE SET (Transact-SQL)
sys.change_tracking_databases (Transact-SQL)
sys.change_tracking_tables (Transact-SQL)
Rastrear alterações de dados (SQL Server)
Sobre o controle de alterações (SQL Server)
Trabalhar com Dados de Mudança (SQL Server)
Gerenciar o controle de alterações (SQL Server)