Aktivera och inaktivera ändringsspårning (SQL Server)
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Det här avsnittet beskriver hur du aktiverar och inaktiverar ändringsspårning för en databas och en tabell.
Aktivera ändringsspårning för en databas
Innan du kan använda ändringsspårning måste du aktivera ändringsspårning på databasnivå. I följande exempel visas hur du aktiverar ändringsspårning med hjälp av ALTER DATABASE.
ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = ON
(CHANGE_RETENTION = 2 DAYS, AUTO_CLEANUP = ON)
Du kan också aktivera ändringsspårning i SQL Server Management Studio med hjälp av dialogrutan Database Properties (ChangeTracking Page). Om en databas innehåller minnesoptimerade tabeller kan du inte aktivera ändringsspårning med SQL Server Management Studio. Om du vill aktivera använder du T-SQL.
Du kan ange alternativen CHANGE_RETENTION och AUTO_CLEANUP när du aktiverar ändringsspårning, och du kan ändra värdena när som helst när ändringsspårning har aktiverats.
Värdet för ändringsbevarande anger den tidsperiod för vilken information om ändringsspårning behålls. Ändringsspårningsinformation som är äldre än den här tidsperioden tas bort med jämna mellanrum. När du anger det här värdet bör du överväga hur ofta program ska synkroniseras med tabellerna i databasen. Den angivna kvarhållningsperioden måste vara minst lika lång som den maximala tidsperioden mellan synkroniseringar. Om ett program får ändringar med längre intervall kan resultatet som returneras vara felaktigt eftersom en del av ändringsinformationen förmodligen har tagits bort. För att undvika felaktiga resultat kan ett program använda systemfunktionen CHANGE_TRACKING_MIN_VALID_VERSION för att avgöra om intervallet mellan synkroniseringar har varit för långt.
Du kan använda alternativet AUTO_CLEANUP för att aktivera eller inaktivera rensningsaktiviteten som tar bort gammal ändringsspårningsinformation. Detta kan vara användbart när det finns ett tillfälligt problem som hindrar program från att synkroniseras och processen för att ta bort information om ändringsspårning som är äldre än kvarhållningsperioden måste pausas tills problemet har lösts.
För alla databaser som använder ändringsspårning bör du vara medveten om följande:
Om du vill använda ändringsspårning måste databaskompatibilitetsnivån vara inställd på 90 eller högre. Om en databas har en kompatibilitetsnivå på mindre än 90 kan du konfigurera ändringsspårning. Funktionen CHANGETABLE, som används för att hämta information om ändringsspårning, returnerar dock ett fel.
Att använda ögonblicksbildisolering är det enklaste sättet för dig att se till att all information om ändringsspårning är konsekvent. Därför rekommenderar vi starkt att ögonblicksbildisolering anges till PÅ för databasen. Mer information finns i Arbeta med ändringsspårning (SQL Server).
Aktivera ändringsspårning för en tabell
Ändringsspårning måste aktiveras för varje tabell som du vill spåra. När ändringsspårning är aktiverat underhålls information om ändringsspårning för alla rader i tabellen som påverkas av en DML-åtgärd.
I följande exempel visas hur du aktiverar ändringsspårning för en tabell med hjälp av ALTER TABLE.
ALTER TABLE Person.Contact
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)
Du kan också aktivera ändringsspårning för en tabell i SQL Server Management Studio med hjälp av dialogrutan Database Properties (ChangeTracking Page).
När alternativet TRACK_COLUMNS_UPDATED är inställt på PÅ lagrar SQL Server Database Engine extra information om vilka kolumner som har uppdaterats till den interna ändringsspårningstabellen. Kolumnspårning kan göra det möjligt för ett program att endast synkronisera de kolumner som har uppdaterats. Detta kan förbättra effektiviteten och prestandan. Men eftersom att upprätthållandet av kolumnspårningsinformation medför extra lagringsöverbelastning är det här alternativet inaktiverat som standard.
Inaktivera ändringsspårning för en tabell eller databas
Ändringsspårning måste först inaktiveras för alla ändringsspårade tabeller innan ändringsspårning kan ställas in på AV för databasen. Om du vill fastställa vilka tabeller som har ändringsspårning aktiverat för en databas använder du sys.change_tracking_tables katalogvyn.
I följande exempel visas hur du inaktiverar ändringsspårning för en tabell med hjälp av ALTER TABLE.
ALTER TABLE Person.Contact
DISABLE CHANGE_TRACKING;
När inga tabeller i en databas spårar ändringar kan du inaktivera ändringsspårning för databasen. I följande exempel visas hur du inaktiverar ändringsspårning för en databas med hjälp av ALTER DATABASE.
ALTER DATABASE AdventureWorks2022
SET CHANGE_TRACKING = OFF
Se även
Databasegenskaper (Ändringsspårningssida)
ÄNDRA ALTERNATIV FÖR DATABASUPPSÄTTNING (Transact-SQL)
sys.change_tracking_databases (Transact-SQL)
sys.change_tracking_tables (Transact-SQL)
Spåra dataändringar (SQL Server)
om ändringsspårning (SQL Server)
Arbeta med förändringsdata (SQL Server)
Hantera ändringsspårning (SQL Server)