Compartir a través de


sp_delete_jobsteplog (Transact-SQL)

Quita todos los registros de paso de trabajo del Agente SQL Server que se especifican con los argumentos. Utilice este procedimiento almacenado para mantener la tabla sysjobstepslogs en la base de datos msdb.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

sp_delete_jobsteplog { [ @job_id = ] 'job_id' | [ @job_name = ] 'job_name' }
       [ , [ @step_id = ] step_id| [ @step_name = ] 'step_name' ]
       [ , [ @older_than = ] 'date' ]
       [ , [ @larger_than = ] 'size_in_bytes' ]

Argumentos

  • [ @job_id =] 'job_id'
    Número de identificación del trabajo que contiene el registro de paso de trabajo que se va a quitar. job_id es de tipo int y su valor predeterminado es NULL.

  • [ @job_name =] 'job_name'
    Nombre del trabajo. job_name es de tipo sysname y su valor predeterminado es NULL.

    [!NOTA]

    Se debe especificar job_id o job_name, pero no ambos.

  • [ @step_id =] step_id
    Número de identificación del paso en el trabajo cuyo registro de paso de trabajo se va a eliminar. Si no se incluye, se eliminarán todos los registros de paso de trabajo de este trabajo a no ser que se especifique @older_than o @larger_than. step_id es de tipo int y su valor predeterminado es NULL.

  • [ @step_name =] 'step_name'
    Nombre del paso del trabajo cuyo registro de paso de trabajo se va a eliminar. step_name es de tipo sysname y su valor predeterminado es NULL.

    [!NOTA]

    Se puede especificar step_id o step_name, pero no ambos.

  • [ @older_than =] 'date'
    Fecha y hora del registro de paso de trabajo más antiguo que desea conservar. Todos los registros de paso de trabajo con fecha anterior a esta fecha y hora se eliminarán. date es de tipo datetime y su valor predeterminado es NULL. Se pueden especificar ambos valores, @older_than y @larger_than.

  • [ @larger_than =] 'size_in_bytes'
    Tamaño en bytes del registro de paso de trabajo más grande que desea conservar. Todos los registros de paso de trabajo con un tamaño superior al especificado se quitan. Se pueden especificar tanto @larger_than como @older_than.

Valores de código de retorno

0 (correcto) o 1 (error)

Conjuntos de resultados

Ninguno

Notas

sp_delete_jobsteplog está en la base de datos msdb.

Si no se especifica ningún argumento excepto @job_id o @job_name, se eliminarán todos los registros de paso de trabajo correspondientes al trabajo especificado.

Permisos

De forma predeterminada, los miembros de la función fija de servidor sysadmin pueden ejecutar este procedimiento almacenado. Al resto de usuarios se les debe conceder una de las siguientes funciones fijas de base de datos del Agente SQL Server en la base de datos msdb:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

Para obtener más información acerca de los permisos de estas funciones, vea Funciones fijas de base de datos del Agente SQL Server.

Solo los miembros de sysadmin pueden eliminar un registro de paso de trabajo que sea propiedad de otro usuario.

Ejemplos

A. Quitar todos los registros de paso de trabajo de un trabajo

En este ejemplo se quitan todos los registros de paso de trabajo correspondientes al trabajo Weekly Sales Data Backup.

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup';
GO

B. Quitar el registro de paso de trabajo de un paso de trabajo determinado

En este ejemplo se quita el registro de paso de trabajo correspondiente al paso 2 del trabajo Weekly Sales Data Backup.

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 2;
GO

C. Quitar todos los registros de paso de trabajo en función de la antigüedad y el tamaño

En este ejemplo se quitan todos los registros de paso de trabajo que son anteriores a las 12 del mediodía del 25 de octubre de 2005, cuyo volumen es superior a 100 megabytes (MB), del trabajo Weekly Sales Data Backup.

USE msdb ;
GO

EXEC dbo.sp_delete_jobsteplog
    @job_name = N'Weekly Sales Data Backup',
    @older_than = '10/25/2005 12:00:00',
    @larger_than = 104857600;
GO