Compartir a través de


sp_purge_jobhistory (Transact-SQL)

Quita los registros de historial de un trabajo.

Sintaxis

sp_purge_jobhistory    {   [ @job_name = ] 'job_name' | 
     | [ @job_id = ] job_id }
   [ , [ @oldest_date = ] oldest_date ]

Argumentos

  • [ @job_name= ] 'job_name'
    Nombre del trabajo del que se van a eliminar registros de historial. job_namees de tipo sysname y su valor predeterminado es NULL. Se debe especificar job_id o job_name, pero no ambos.

    [!NOTA] Los miembros de la función fija de servidor sysadmin o de la función fija de base de datos SQLAgentOperatorRole pueden ejecutar sp_purge_jobhistory sin especificar un job_name o job_id. Cuando los usuarios de sysadmin no especifican estos argumentos, se elimina el historial de todos los trabajos locales y multiservidor en el tiempo especificado por oldest_date. Cuando los usuarios de SQLAgentOperatorRole no especifican estos argumentos, se elimina el historial de todos los trabajos locales en el tiempo especificado por oldest_date.

  • [ @job_id= ] job_id
    Número de identificación del trabajo para los registros que se va a eliminar. job_ides de tipo uniqueidentifier y su valor predeterminado es NULL. Se debe especificar job_id o job_name, pero no ambos. Vea la nota de la descripción de @job_name para obtener información sobre cómo los usuarios de sysadmin o SQLAgentOperatorRole pueden utilizar este argumento.
  • [ @oldest_date = ] oldest_date
    Registro más antiguo que se mantendrá en el historial. oldest_date es de tipo datetime y su valor predeterminado es NULL. Si se especifica oldest_date, sp_purge_jobhistory sólo quita los registros anteriores al valor especificado.

Conjuntos de resultados

Ninguno

Notas

Cuando sp_purge_jobhistory finaliza correctamente, se devuelve un mensaje.

Permisos

De manera predeterminada, este procedimiento almacenado sólo lo pueden ejecutar los miembros de la función fija de servidor sysadmin o de la función fija de base de datos SQLAgentOperatorRole. Los miembros de sysadmin pueden purgar el historial de trabajos de todos los trabajos locales y multiservidor. Los miembros de SQLAgentOperatorRole pueden purgar únicamente el historial de trabajos de todos los trabajos locales.

A otros usuarios, incluidos los miembros de SQLAgentUserRole y de SQLAgentReaderRole, se les debe conceder explícitamente el permiso EXECUTE en sp_purge_jobhistory. Una vez que disponen del permiso EXECUTE en este procedimiento almacenado, estos usuarios sólo pueden purgar el historial de los trabajos que les pertenecen.

Las funciones fijas de base de datos SQLAgentUserRole, SQLAgentReaderRole y SQLAgentOperatorRole se encuentran en la base de datos msdb. Para obtener detalles sobre sus permisos, vea Funciones fijas de base de datos del Agente SQL Server.

Valores de código de retorno

0 (correcto) o 1 (error)

Ejemplos

A. Quitar el historial de un trabajo determinado

En el ejemplo siguiente se quita el historial de un trabajo denominado NightlyBackups.

USE msdb ;
GO

EXEC dbo.sp_purge_jobhistory
    @job_name = N'NightlyBackups' ;
GO

B. Quitar el historial de todos los trabajos

[!NOTA] Sólo los miembros de la función fija de servidor sysadmin y los miembros de SQLAgentOperatorRole pueden quitar el historial de todos los trabajos. Cuando los usuarios de sysadmin ejecutan este procedimiento almacenado sin parámetros, se quita el historial de trabajos de todos los trabajos multiservidor y locales. Cuando los usuarios de SQLAgentOperatorRole ejecutan este procedimiento almacenado sin parámetros, sólo se quita el historial de trabajos de todos los trabajos locales.

En el ejemplo siguiente se ejecuta el procedimiento sin parámetros para quitar todos los registros de historial.

USE msdb ;
GO

EXEC dbo.sp_purge_jobhistory ;
GO

Vea también

Referencia

sp_help_job (Transact-SQL)
sp_help_jobhistory (Transact-SQL)
Procedimientos almacenados del sistema (Transact-SQL)
GRANT (permisos de objeto de Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005