Compartir a través de


sp_help_jobhistory (Transact-SQL)

Se aplica a: SQL Server

Proporciona información acerca de los trabajos en los servidores de un dominio de administración multiservidor.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_help_jobhistory
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @step_id = ] step_id ]
    [ , [ @sql_message_id = ] sql_message_id ]
    [ , [ @sql_severity = ] sql_severity ]
    [ , [ @start_run_date = ] start_run_date ]
    [ , [ @end_run_date = ] end_run_date ]
    [ , [ @start_run_time = ] start_run_time ]
    [ , [ @end_run_time = ] end_run_time ]
    [ , [ @minimum_run_duration = ] minimum_run_duration ]
    [ , [ @run_status = ] run_status ]
    [ , [ @minimum_retries = ] minimum_retries ]
    [ , [ @oldest_first = ] oldest_first ]
    [ , [ @server = ] N'server' ]
    [ , [ @mode = ] 'mode' ]
[ ; ]

Argumentos

[ @job_id = ] 'job_id'

Número de identificación del trabajo. @job_id es uniqueidentifier, con un valor predeterminado de NULL.

[ @job_name = ] N'job_name'

Nombre del trabajo. @job_name es sysname, con un valor predeterminado de NULL.

[ @step_id = ] step_id

El número de identificación del paso. @step_id es int, con un valor predeterminado de NULL.

[ @sql_message_id = ] sql_message_id

Número de identificación del mensaje de error devuelto por SQL Server al ejecutar el trabajo. @sql_message_id es int, con un valor predeterminado de NULL.

[ @sql_severity = ] sql_severity

Nivel de gravedad del mensaje de error devuelto por SQL Server cuando se ejecuta el trabajo. @sql_severity es int, con un valor predeterminado de NULL.

[ @start_run_date = ] start_run_date

Fecha en que se inició el trabajo. @start_run_date es int, con un valor predeterminado de NULL. @start_run_date debe escribirse en el formato yyyyMMdd, donde yyyy es un año de cuatro caracteres, MM es un nombre de mes de dos caracteres y dd es un nombre de día de dos caracteres.

[ @end_run_date = ] end_run_date

Fecha en que se completó el trabajo. @end_run_date es int, con un valor predeterminado de NULL. @end_run_date debe escribirse en el formato yyyyMMdd, donde yyyy es un año de cuatro caracteres, MM es un nombre de mes de dos caracteres y dd es un nombre de día de dos caracteres.

[ @start_run_time = ] start_run_time

Hora a la que comenzó el trabajo. @start_run_time es int, con un valor predeterminado de NULL. @start_run_time debe escribirse en el formato HHmmss, donde HH es una hora de dos caracteres del día, mm es un minuto de dos caracteres del día y ss es un segundo de dos caracteres del día.

[ @end_run_time = ] end_run_time

Hora a la que se completó la ejecución del trabajo. @end_run_time es int, con un valor predeterminado de NULL. @end_run_time debe escribirse en el formato HHmmss, donde HH es una hora de dos caracteres del día, mm es un minuto de dos caracteres del día y ss es un segundo de dos caracteres del día.

[ @minimum_run_duration = ] minimum_run_duration

Duración mínima de la realización del trabajo. @minimum_run_duration es int, con un valor predeterminado de NULL. @minimum_run_duration debe escribirse en el formato HHmmss, donde HH es una hora de dos caracteres del día, mm es un minuto de dos caracteres del día y ss es un segundo de dos caracteres del día.

[ @run_status = ] run_status

Estado de ejecución del trabajo.@run_status es int y puede ser uno de estos valores.

Valor Descripción
0 Con error
1 Correcto
2 Reintento (solo pasos)
3 Canceled
4 Mensaje en curso
5 Unknown

[ @minimum_retries = ] minimum_retries

Número mínimo de veces que se debe volver a intentar la ejecución de un trabajo. @minimum_retries es int, con un valor predeterminado de NULL.

[ @oldest_first = ] oldest_first

Indica si se va a presentar primero la salida con los trabajos más antiguos. @oldest_first es int, con un valor predeterminado de 0.

  • 0 presenta primero los trabajos más recientes.
  • 1 presenta primero los trabajos más antiguos.

[ @server = ] N'server'

Nombre del servidor en el que se realizó el trabajo. @server es sysname, con un valor predeterminado de NULL.

[ @mode = ] 'mode'

Especifica si SQL Server imprime todas las columnas del conjunto de resultados (FULL) o un resumen (SUMMARY) de las columnas. @mode es varchar(7), con un valor predeterminado de SUMMARY.

Valores de código de retorno

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

Conjunto de resultados

La lista de columnas real depende del valor de @mode. El conjunto de columnas más completo se muestra en la tabla siguiente y se devuelve cuando @mode es FULL.

Nombre de la columna Tipo de datos Descripción
instance_id int Número de identificación de la entrada en el historial.
job_id uniqueidentifier Número de identificación del trabajo.
job_name sysname Nombre del trabajo.
step_id int Número de identificación del paso (0 para un historial de trabajos).
step_name sysname Nombre del paso (NULL para un historial de trabajos).
sql_message_id int Para un paso de Transact-SQL, se encontró el número de error de Transact-SQL más reciente al ejecutar el comando.
sql_severity int Para un paso de Transact-SQL, se encontró la gravedad de error de Transact-SQL más alta al ejecutar el comando.
message nvarchar(1024) Mensaje del historial de trabajos o pasos.
run_status int Resultado del trabajo o del paso.
run_date int Fecha en que empezó la ejecución del trabajo o del paso.
run_time int Hora en que empezó la ejecución del trabajo o del paso.
run_duration int Tiempo transcurrido en la ejecución del trabajo o paso en HHmmss formato.
operator_emailed nvarchar(20) Operador que se ha enviado por correo electrónico con respecto a este trabajo (es NULL para el historial de pasos).
operator_netsent nvarchar(20) Operador que se envió un mensaje de red con respecto a este trabajo (es NULL para el historial de pasos).
operator_paged nvarchar(20) Operador que se ha paginado con respecto a este trabajo (es NULL para el historial de pasos).
retries_attempted int Número de veces que se ha vuelto a intentar el paso (siempre es 0 para un historial de trabajos).
server nvarchar(30) Servidor en el que se ejecuta el paso o el trabajo. Siempre es (local).

Comentarios

sp_help_jobhistory devuelve un informe con el historial de los trabajos programados especificados. Si no se especifican parámetros, el informe contiene el historial de todos los trabajos programados.

Permisos

Puede conceder EXECUTE permisos en este procedimiento, pero estos permisos se pueden invalidar durante una actualización de SQL Server.

A otros usuarios se les debe conceder uno de los siguientes Agente SQL Server roles fijos de base de datos en la msdb base de datos:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Para detalles sobre los permisos de estos roles, consulte Roles fijos de base de datos del Agente SQL Server.

Los miembros del rol de base de datos SQLAgentUserRole solo pueden ver el historial de los trabajos que poseen.

Ejemplos

A Enumerar toda la información del trabajo de un trabajo

En el siguiente ejemplo se muestra toda la información del trabajo NightlyBackups.

USE msdb;
GO

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

B. Enumeración de la información de los trabajos que coinciden con determinadas condiciones

En el siguiente ejemplo se imprimen todas las columnas y toda la información de los trabajos o pasos de trabajo que no progresaron y devolvieron el mensaje de error 50100 (mensaje de error definido por el usuario) y una gravedad de 20.

USE msdb;
GO

EXEC dbo.sp_help_jobhistory
    @sql_message_id = 50100,
    @sql_severity = 20,
    @run_status = 0,
    @mode = N'FULL';
GO