Delen via


sys.sp_flush_CT_internal_table_on_demand (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Met deze opgeslagen procedure kunt u de zijtabel (change_tracking_objectid) handmatig opschonen voor een tabel in een database waarvoor wijzigingen bijhouden is ingeschakeld. Als de parameter TableToClean niet wordt doorgegeven, worden met dit proces alle tabellen voor alle tabellen in de database opgeschoond waarvoor wijzigingen bijhouden is ingeschakeld.

Transact-SQL syntaxis-conventies

Syntaxis

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

Argumenten

[ @TableToClean = ] 'TableToClean'

De tabel met wijzigingen bijhouden die handmatig moet worden opgeschoond. De achterstanden blijven over voor het automatisch opschonen door wijzigingen bij te houden. Kan null zijn om alle zijtabellen op te schonen.

[ @DeletedRowCount = ] OUTPUT 'DeletedRowCount'

@DeletedRowCount is een UITVOERparameter van het type bigint. Deze parameter retourneert het totale aantal rijen dat tijdens het proces is opgeschoond.

Codewaarden retourneren

0 (geslaagd) of 1 (mislukt).

Voorbeelden

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

Hier is het resultatenoverzicht.

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

Opmerkingen

Deze procedure moet worden uitgevoerd in een database waarvoor wijzigingen bijhouden is ingeschakeld.

Wanneer u de opgeslagen procedure uitvoert, vindt een van de volgende scenario's plaats:

  • Als de tabel niet bestaat of als wijzigingen bijhouden niet is ingeschakeld, worden de juiste foutberichten gegenereerd.

  • Deze opgeslagen procedure roept een andere interne opgeslagen procedure aan waarmee inhoud wordt opgeschoond uit de tabel met wijzigingen bijhouden die is gebaseerd op de ongeldige opschoningsversie met behulp van de sys.change_tracking_tables dynamische beheerweergave. Wanneer deze wordt uitgevoerd, worden de gegevens weergegeven van de totale rijen die zijn verwijderd (voor elke 5000 rijen).

Deze opgeslagen procedure is beschikbaar in de volgende producten:

  • SQL Server 2016 (13.x) Service Pack 1 en latere versies
  • Azure SQL Database en Azure SQL Managed Instance

Machtigingen

Alleen een lid van de sysadmin-serverfunctie of db_owner databaserol kan deze procedure uitvoeren.