Condividi tramite


sys.sp_flush_CT_internal_table_on_demand (Transact-SQL)

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure

Questa stored procedure consente di pulire manualmente la tabella laterale (change_tracking_objectid) per una tabella in un database per cui è abilitato il rilevamento delle modifiche. Se il parametro TableToClean non viene passato, questo processo pulisce tutte le tabelle laterali per tutte le tabelle nel database in cui è abilitato il rilevamento delle modifiche.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

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

Argomenti

[ @TableToClean = ] 'TableToClean'

Tabella abilitata per il rilevamento delle modifiche da pulire manualmente. I backlog vengono lasciati per la pulizia automatica tramite il rilevamento delle modifiche. Può essere Null per pulire tutte le tabelle laterali.

[ @DeletedRowCount = ] 'DELETEdRowCount' OUTPUT

@DeletedRowCount è un parametro OUTPUT di tipo bigint. Questo parametro restituisce il numero totale di righe che sono stati puliti durante il processo.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Esempi

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

Il set di risultati è il seguente.

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

Osservazioni:

Questa procedura deve essere eseguita in un database in cui è abilitato il rilevamento delle modifiche.

Quando si esegue la stored procedure, si verifica uno degli scenari seguenti:

  • Se la tabella non esiste o se il rilevamento delle modifiche non è abilitato, vengono generati messaggi di errore appropriati.

  • Questa stored procedure chiama un'altra stored procedure interna che pulisce il contenuto dalla tabella lato rilevamento modifiche basata sulla versione di pulizia non valida usando la sys.change_tracking_tables visualizzazione a gestione dinamica. Quando è in esecuzione, mostra le informazioni delle righe totali eliminate (per ogni 5000 righe).

Questa stored procedure è disponibile nei prodotti seguenti:

  • SQL Server 2016 (13.x) Service Pack 1 e versioni successive
  • Database SQL di Azure e Istanza gestita di SQL di Azure

Autorizzazioni

Questa procedura può essere eseguita solo da un membro del ruolo del server sysadmin o db_owner ruolo del database.