Compartir a través de


sys.sp_cleanup_temporal_history (Transact-SQL)

Se aplica a: SQL Server 2017 (14.x) y versiones posteriores Azure SQL Database Azure SQL Managed Instance

Quita todas las filas de la tabla temporal de historial que coinciden con HISTORY_RETENTION_PERIOD configurado dentro de una sola transacción.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_cleanup_temporal_history
    [ @schema_name = ] N'schema_name'
    , [ @table_name = ] N'table_name'
    [ , [ @row_count = ] @row_count_var [ OUTPUT ] ]

Argumentos

[ @schema_name = ] N'schema_name'

Nombre de la tabla temporal para la que se invoca la limpieza de retención.

[ @table_name = ] N'table_name'

Nombre del esquema al que pertenece la tabla temporal actual.

[ @row_count = ] @row_count_var [ OUTPUT ]

Parámetro de salida que devuelve el número de filas eliminadas. Si la tabla de historial tiene un índice de almacén de columnas agrupado, este parámetro devuelve 0.

Comentarios

Este procedimiento almacenado solo se puede usar con tablas temporales que tengan un período de retención finito especificado. Use este procedimiento almacenado solo si necesita limpiar inmediatamente todas las filas antiguas de la tabla de historial.

sp_cleanup_temporal_history puede tener un efecto negativo en el registro de base de datos y el subsistema de E/S, ya que elimina todas las filas aptas dentro de la misma transacción.

Siempre debe confiar en una tarea interna en segundo plano para la limpieza que elimine las filas antiguas, con el mínimo impacto en las cargas de trabajo habituales y en la base de datos en general.

Permisos

Requiere permisos de db_owner.

Ejemplos

DECLARE @rowcnt AS INT;

EXECUTE sys.sp_cleanup_temporal_history 'dbo', 'Department', @rowcnt OUTPUT;

SELECT @rowcnt;