sys.sp_flush_CT_internal_table_on_demand (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance
Mit dieser gespeicherten Prozedur können Sie die seitliche Tabelle (change_tracking_objectid
) für eine Tabelle in einer Datenbank manuell bereinigen, für die die Änderungsnachverfolgung aktiviert ist. Wenn der Parameter TableToClean nicht übergeben wird, bereinigt dieser Vorgang alle Seitentabellen für alle Tabellen in der Datenbank, in denen die Änderungsnachverfolgung aktiviert ist.
Transact-SQL-Syntaxkonventionen
Syntax
sys.sp_flush_CT_internal_table_on_demand
[ @TableToClean = ] 'TableToClean'
[ , [ @DeletedRowCount = ] DeletedRowCount OUTPUT ]
[ ; ]
Argumente
[ @TableToClean = ] 'TableToClean'
Die tabelle mit aktivierter Änderungsnachverfolgung, die manuell bereinigt werden soll. Die Backlogs bleiben für die automatische Bereinigung durch Änderungsnachverfolgung erhalten. Kann NULL sein, um alle Seitentabellen zu bereinigen.
[ @DeletedRowCount = ] 'Output von DeletedRowCount
@DeletedRowCount ist ein OUTPUT-Parameter vom Typ bigint. Dieser Parameter gibt die Gesamtanzahl der Zeilen zurück, die während des Prozesses bereinigt wurden.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Beispiele
DECLARE @DeletedRowCount BIGINT;
EXEC sys.sp_flush_CT_internal_table_on_demand '[Sales].[Orders]',
@DeletedRowCount = @DeletedRowCount OUTPUT;
PRINT CONCAT('Number of rows deleted: ', @DeletedRowCount);
GO
Hier sehen Sie das Ergebnis.
Started executing query at Line 1
Cleanup Watermark = 17
Internal Change Tracking table name : change_tracking_1541580530
Total rows deleted: 0.
Number of rows deleted: 0
Total execution time: 00:00:02.949
Hinweise
Dieses Verfahren muss in einer Datenbank ausgeführt werden, in der die Änderungsnachverfolgung aktiviert ist.
Wenn Sie die gespeicherte Prozedur ausführen, geschieht eines der folgenden Szenarien:
Wenn die Tabelle nicht vorhanden ist oder die Änderungsnachverfolgung nicht aktiviert ist, werden entsprechende Fehlermeldungen ausgelöst.
Diese gespeicherte Prozedur ruft eine weitere interne gespeicherte Prozedur auf, die Inhalte aus der Änderungsnachverfolgungsseite bereinigt, die auf der ungültigen Bereinigungsversion basiert, mithilfe der
sys.change_tracking_tables
dynamischen Verwaltungsansicht. Wenn sie ausgeführt wird, werden die Informationen der gelöschten Gesamtzeilen angezeigt (für alle 5000 Zeilen).
Diese gespeicherte Prozedur ist in den folgenden Produkten verfügbar:
- SQL Server 2016 (13.x) Service Pack 1 und höhere Versionen
- Azure SQL-Datenbank und Azure SQL Managed Instance
Berechtigungen
Nur ein Mitglied der Sysadmin-Serverrolle oder db_owner Datenbankrolle kann dieses Verfahren ausführen.
Zugehöriger Inhalt
- Informationen zur Änderungsnachverfolgung (Transact-SQL)
- Bereinigung und Problembehandlung von Änderungen (Transact-SQL)
- Änderungsnachverfolgungs-Funktionen (Transact-SQL)
- Systemtabellen für die Änderungsnachverfolgung (Transact-SQL)
- Gespeicherte Prozeduren zur Änderungsnachverfolgung (Transact-SQL)