Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique explique comment activer et désactiver le suivi des modifications pour une base de données et une table.
Activer le suivi des modifications pour une base de données
Avant de pouvoir utiliser le suivi des modifications, vous devez l'activer au niveau de la base de données. L’exemple suivant montre comment activer le suivi des modifications à l’aide de ALTER DATABASE.
ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)
Vous pouvez également activer le suivi des modifications dans SQL Server Management Studio à l’aide de la boîte de dialogue Propriétés de la base de données (page ChangeTracking).
Vous pouvez spécifier les options CHANGE_RETENTION et AUTO_CLEANUP lorsque vous activez le suivi des modifications et vous pouvez modifier leurs valeurs à tout moment une fois que le suivi des modifications a été activé.
La valeur de rétention des modifications spécifie la période pendant laquelle les informations de suivi des modifications sont conservées. Les informations de suivi des modifications antérieures à cette période sont supprimées régulièrement. Lorsque vous définissez cette valeur, vous devez prendre en compte la fréquence à laquelle les applications se synchronisent avec les tables de la base de données. En effet, la période de rétention spécifiée doit être supérieure ou égale à la période maximale entre deux synchronisations. Si une application obtient des modifications à des intervalles plus longs, les résultats retournés peuvent être incorrects, car certaines informations de modification ont probablement été supprimées. Pour éviter d'obtenir des résultats incorrects, une application peut utiliser la fonction système CHANGE_TRACKING_MIN_VALID_VERSION pour déterminer si l'intervalle entre synchronisations a été trop long.
Vous pouvez utiliser l'option AUTO_CLEANUP pour activer ou désactiver la tâche de nettoyage qui permet de supprimer les informations de suivi des modifications anciennes. Cela peut être utile lorsqu’il existe un problème temporaire qui empêche les applications de synchroniser et le processus de suppression des informations de suivi des modifications antérieures à la période de rétention doit être suspendu jusqu’à ce que le problème soit résolu.
Pour toute base de données qui utilise le suivi des modifications, tenez compte des éléments suivants :
Pour utiliser le suivi des modifications, le niveau de compatibilité de la base de données doit être défini sur 90 ou supérieur. Si une base de données a un niveau de compatibilité inférieur à 90, vous pouvez configurer le suivi des modifications. Toutefois, la fonction CHANGETABLE, utilisée pour obtenir des informations de suivi des modifications, retourne une erreur.
L'utilisation de l'isolement d'instantané constitue le moyen le plus simple de garantir la cohérence de toutes les informations de suivi des modifications. Pour cette raison, nous vous recommandons vivement de définir l’isolation d’instantané sur ON pour la base de données. Pour plus d’informations, consultez Work with Change Tracking (SQL Server).
Activer le suivi des modifications pour une table
Le suivi des modifications doit être activé pour chaque table que vous souhaitez suivre. Lorsque le suivi des modifications est activé, les informations de suivi des modifications sont conservées pour toutes les lignes de la table affectées par une opération DML.
L’exemple suivant montre comment activer le suivi des modifications pour une table à l’aide de ALTER TABLE.
ALTER TABLE Person.Contact
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)
Vous pouvez également activer le suivi des modifications pour une table dans SQL Server Management Studio à l’aide de la boîte de dialogue Propriétés de la base de données (page ChangeTracking).
Lorsque l’option TRACK_COLUMNS_UPDATED est définie sur ON, le moteur de base de données SQL Server stocke des informations supplémentaires sur les colonnes mises à jour vers la table de suivi des modifications interne. Le suivi des colonnes peut permettre à une application de synchroniser uniquement les colonnes mises à jour. Cela peut améliorer l’efficacité et les performances. Toutefois, étant donné que la maintenance des informations de suivi des colonnes ajoute une surcharge de stockage supplémentaire, cette option est définie sur OFF par défaut.
Désactiver le suivi des modifications pour une base de données ou une table
Vous devez d'abord désactiver le suivi des modifications pour toutes les tables qui en font l'objet avant d'affecter la valeur OFF au suivi des modifications pour la base de données. Pour déterminer les tables dont le suivi des modifications est activé pour une base de données, utilisez l’affichage catalogue sys.change_tracking_tables .
Quand aucune table n'effectue un suivi des modifications dans une base de données, vous pouvez désactiver le suivi des modifications pour cette base de données. L’exemple suivant montre comment désactiver le suivi des modifications pour une base de données à l’aide de ALTER DATABASE.
ALTER DATABASE AdventureWorks2012
SET CHANGE_TRACKING = OFF
L’exemple suivant montre comment désactiver le suivi des modifications pour une table à l’aide de ALTER TABLE.
ALTER TABLE Person.Contact
DISABLE CHANGE_TRACKING;
Voir aussi
Propriétés de la base de données (page ChangeTracking)
Options SET d’ALTER DATABASE (Transact-SQL)
sys.change_tracking_databases (Transact-SQL)
sys.change_tracking_tables (Transact-SQL)
Suivre les modifications de données (SQL Server)
À propos du suivi des modifications (SQL Server)
Utiliser les données modifiées (SQL Server)
Gérer le suivi des modifications (SQL Server)