dbo.sysjobhistory (Transact-SQL)dbo.sysjobhistory (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server нетБаза данных SQL AzureнетХранилище данных SQL AzureнетParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Содержит сведения о выполнении назначенных заданий агентом SQL ServerSQL Server.Contains information about the execution of scheduled jobs by SQL ServerSQL Server Agent.

Примечание

В большинстве случаев данные обновляются только после завершения шага задания и таблицы обычно не содержит записей для шагов задания, выполняющиеся в настоящее время, но в некоторых случаях лежащие в основе процедуры сделать Указание сведений о в Ход выполнения шагов задания.In most cases the data is updated only after the job step completes and the table typically contains no records for job steps that are currently in progress, but in some cases underlying processes do provide information about in progress job steps.

Эта таблица хранится в msdb базы данных.This table is stored in the msdb database.

Имя столбцаColumn name Тип данныхData type ОписаниеDescription
instance_idinstance_id intint Уникальный идентификатор строки.Unique identifier for the row.
job_idjob_id uniqueidentifieruniqueidentifier Идентификатор задания.Job ID.
step_idstep_id intint Идентификатор этапа в задании.ID of the step in the job.
step_namestep_name sysnamesysname Имя этапа.Name of the step.
sql_message_idsql_message_id intint Идентификатор любого сообщения SQL ServerSQL Server об ошибке, возвращенного при сбое задания.ID of any SQL ServerSQL Server error message returned if the job failed.
sql_severitysql_severity intint Уровень серьезности любой ошибки SQL ServerSQL Server.Severity of any SQL ServerSQL Server error.
messagemessage nvarchar(4000)nvarchar(4000) Текст ошибки SQL ServerSQL Server, если он имеется.Text, if any, of a SQL ServerSQL Server error.
run_statusrun_status intint Состояние выполнения задания.Status of the job execution:

0 = ошибка0 = Failed

1 = выполнено успешно1 = Succeeded

2 = повторение2 = Retry

3 = отменено3 = Canceled

4 = выполняется4 = In Progress
run_daterun_date intint Дата начала выполнения задания или этапа.Date the job or step started execution. Для внутрипроцессного журнала это дата и время записи журнала.For an In Progress history, this is the date/time the history was written.
run_timerun_time intint Время запуска задания или этапа.Time the job or step started.
run_durationrun_duration intint Время, затраченное на выполнение задания или этапа в ЧЧММСС формат.Elapsed time in the execution of the job or step in HHMMSS format.
operator_id_emailedoperator_id_emailed intint Идентификатор оператора, уведомленного о завершении задания.ID of the operator notified when the job completed.
operator_id_netsentoperator_id_netsent intint Идентификатор оператора, уведомленного при помощи сообщения о завершении задания.ID of the operator notified by a message when the job completed.
operator_id_pagedoperator_id_paged intint Идентификатор оператора, уведомленного по пейджеру о завершении задания.ID of the operator notified by pager when the job completed.
retries_attemptedretries_attempted intint Количество повторных попыток выполнения задания или этапа.Number of retry attempts for the job or step.
serverserver sysnamesysname Имя сервера, на котором выполнялось задание.Name of the server where the job was executed.

ПримерExample

Следующие Transact-SQLTransact-SQL преобразует запрос run_time и run_duration столбцы в формате более понятное для пользователя.The following Transact-SQLTransact-SQL query will convert the run_time and run_duration columns into a more user friendly format. Выполнить скрипт в SQL Server Management StudioSQL Server Management Studio.Execute the script in SQL Server Management StudioSQL Server Management Studio.

SET NOCOUNT ON;

SELECT sj.name,
       sh.run_date,
       sh.step_name,
       STUFF(STUFF(RIGHT(REPLICATE('0', 6) +  CAST(sh.run_time as varchar(6)), 6), 3, 0, ':'), 6, 0, ':') 'run_time',
       STUFF(STUFF(STUFF(RIGHT(REPLICATE('0', 8) + CAST(sh.run_duration as varchar(8)), 8), 3, 0, ':'), 6, 0, ':'), 9, 0, ':') 'run_duration (DD:HH:MM:SS)  '
FROM msdb.dbo.sysjobs sj
JOIN msdb.dbo.sysjobhistory sh
ON sj.job_id = sh.job_id