Compartir a través de


sys.sp_flush_CT_internal_table_on_demand (Transact-SQL)

Se aplica a: SQL ServerAzure SQL Database Azure SQL Instancia administrada

Este procedimiento almacenado permite limpiar manualmente la tabla lateral (change_tracking_objectid) de una tabla de una base de datos para la que está habilitado el seguimiento de cambios. Si no se pasa el parámetro TableToClean , este proceso limpia todas las tablas laterales de todas las tablas de la base de datos donde está habilitado el seguimiento de cambios.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Argumentos

[ @TableToClean = ] 'TableToClean'

Tabla habilitada para el seguimiento de cambios que se va a limpiar manualmente. Los trabajos pendientes quedan para la limpieza automática mediante el seguimiento de cambios. Puede ser NULL para limpiar todas las tablas laterales.

[ @DeletedRowCount = ] 'Salida de DeletedRowCount

@DeletedRowCount es un parámetro OUTPUT de tipo bigint. Este parámetro devuelve el número total de filas que se limpiaron durante el proceso.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Ejemplos

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

El conjunto de resultados es el siguiente:

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

Observaciones

Este procedimiento debe ejecutarse en una base de datos que tenga habilitado el seguimiento de cambios.

Al ejecutar el procedimiento almacenado, se produce uno de los siguientes escenarios:

  • Si la tabla no existe o si el seguimiento de cambios no está habilitado, se inician los mensajes de error adecuados.

  • Este procedimiento almacenado llama a otro procedimiento almacenado interno que limpia el contenido de la tabla lateral de seguimiento de cambios que se basa en la versión de limpieza no válida mediante la sys.change_tracking_tables vista de administración dinámica. Cuando se ejecuta, muestra la información del total de filas eliminadas (por cada 5000 filas).

Este procedimiento almacenado está disponible en los siguientes productos:

  • SQL Server 2016 (13.x) Service Pack 1 y versiones posteriores
  • Azure SQL Database y Azure SQL Managed Instance

Permisos

Solo un miembro del rol de servidor sysadmin o db_owner rol de base de datos puede ejecutar este procedimiento.