Sdílet prostřednictvím


sys.sp_flush_CT_internal_table_on_demand (Transact-SQL)

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Tato uložená procedura umožňuje ručně vyčistit boční tabulku (change_tracking_objectid) pro tabulku v databázi, pro kterou je povoleno sledování změn. Pokud parametr TableToClean není předán, tento proces vyčistí všechny tabulky na straně všech tabulek v databázi, kde je povoleno sledování změn.

Transact-SQL konvence syntaxe

Syntaxe

sys.sp_flush_CT_internal_table_on_demand
    [ @TableToClean = ] 'TableToClean'
    [ , [ @DeletedRowCount = ] DeletedRowCount OUTPUT ]
[ ; ]

Argumenty

[ @TableToClean = ] 'TableToClean'

Tabulka s povoleným sledováním změn, která se má ručně vyčistit. Backlogy zůstanou pro automatické vyčištění sledováním změn. Pokud chcete vyčistit všechny boční tabulky, může mít hodnotu null.

[ @DeletedRowCount = ] VÝSTUP 'DeletedRowCount'

@DeletedRowCount je výstupní parametr typu bigint. Tento parametr vrátí celkový počet řádků, které se během procesu vyčistily.

Hodnoty návratového kódu

0 (úspěch) nebo 1 (selhání).

Příklady

DECLARE @DeletedRowCount AS BIGINT;

EXECUTE sys.sp_flush_CT_internal_table_on_demand '[Sales].[Orders]',
    @DeletedRowCount = @DeletedRowCount OUTPUT;

PRINT CONCAT('Number of rows deleted: ', @DeletedRowCount);
GO

Tady je soubor výsledků.

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

Poznámky

Tento postup musí být spuštěný v databázi s povoleným sledováním změn.

Když spustíte uloženou proceduru, stane se jeden z následujících scénářů:

  • Pokud tabulka neexistuje nebo pokud sledování změn není povolené, zobrazí se příslušné chybové zprávy.

  • Tato uložená procedura volá jinou interní uloženou proceduru, která vyčistí obsah z tabulky na straně sledování změn, která je založená na neplatné verzi čištění pomocí sys.change_tracking_tables zobrazení dynamické správy. Když je spuštěný, zobrazí se informace o odstraněných řádcích celkem (pro každých 5 000 řádků).

Tato uložená procedura je k dispozici v následujících produktech:

  • SQL Server 2016 (13.x) Service Pack 1 a novější verze
  • Azure SQL Database a Spravovaná instance Azure SQL

Povolení

Tento postup může provést pouze člen role serveru sysadmin nebo role databáze db_owner .