Freigeben über


sys.sp_flush_CT_internal_table_on_demand (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Mit dieser gespeicherten Prozedur können Sie die seitliche Tabelle (change_tracking_objectid) für eine Tabelle in einer Datenbank, für die die Änderungsnachverfolgung aktiviert ist, manuell sauber. Wenn der Parameter TableToClean nicht übergeben wird, sauber dieser Vorgang alle Seitentabellen für alle Tabellen in der Datenbank an, 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 sauber werden soll. Die Backlogs bleiben für die automatische sauber up durch Änderungsnachverfolgung erhalten. Kann null sein, um alle seitenseitigen Tabellen sauber.

[ @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 sauber nach oben geholt wurden.

Rückgabecodewerte

0 (Erfolg) 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 ist das Resultset.

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-Tabelle sauber, die auf der ungültigen sauber up-Version basiert, mithilfe der sys.change_tracking_tables dynamischen Verwaltungsansicht sauber. 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.