Partage via


sys.sp_flush_CT_internal_table_on_demand (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Cette procédure stockée vous permet de nettoyer manuellement la table latérale (change_tracking_objectid) d’une table dans une base de données pour laquelle le suivi des modifications est activé. Si le paramètre TableToClean n’est pas passé, ce processus nettoie toutes les tables latérales de toutes les tables de la base de données où le suivi des modifications est activé.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @TableToClean = ] 'TableToClean'

Table avec suivi des modifications à nettoyer manuellement. Les backlogs sont laissés pour le nettoyage automatique par suivi des modifications. Peut être null pour nettoyer toutes les tables latérales.

[ @DeletedRowCount = ] 'Sortie de DeletedRowCount

@DeletedRowCount est un paramètre OUTPUT de type bigint. Ce paramètre retourne le nombre total de lignes qui ont été nettoyées pendant le processus.

Valeurs des codes de retour

0 (réussite) or 1 (échec).

Exemples

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

Voici le jeu de résultats.

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

Notes

Cette procédure doit être exécutée dans une base de données sur laquelle le suivi des modifications est activé.

Lorsque vous exécutez la procédure stockée, l’un des scénarios suivants se produit :

  • Si la table n’existe pas ou si le suivi des modifications n’est pas activé, les messages d’erreur appropriés sont levées.

  • Cette procédure stockée appelle une autre procédure stockée interne qui nettoie le contenu de la table latérale de suivi des modifications basée sur la version de nettoyage non valide à l’aide de la sys.change_tracking_tables vue de gestion dynamique. Lorsqu’elle est en cours d’exécution, elle affiche les informations du nombre total de lignes supprimées (pour toutes les 5 000 lignes).

Cette procédure stockée est disponible dans les produits suivants :

  • SQL Server 2016 (13.x) Service Pack 1 et versions ultérieures
  • Azure SQL Database et Azure SQL Managed Instance

autorisations

Seul un membre du rôle serveur sysadmin ou db_owner rôle de base de données peut exécuter cette procédure.