Поделиться через


sp_help_jobhistory (Transact-SQL)

Область применения: SQL Server

Предоставляет сведения о заданиях серверов в многосерверном административном домене.

Соглашения о синтаксисе Transact-SQL

Синтаксис

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' ]
[ ; ]

Аргументы

[ @job_id = ] 'job_id'

Идентификационный номер задания. @job_id является уникальным идентификатором по умолчаниюNULL.

[ @job_name = ] N'job_name'

Имя задания. @job_name — sysname с значением по умолчаниюNULL.

[ @step_id = ] step_id

Идентификационный номер этапа. @step_id имеет значение int с значением по умолчаниюNULL.

[ @sql_message_id = ] sql_message_id

Идентификационный номер сообщения об ошибке, возвращаемого SQL Server при выполнении задания. @sql_message_id имеет значение int с значением по умолчаниюNULL.

[ @sql_severity = ] sql_severity

Уровень серьезности сообщения об ошибке, возвращаемого SQL Server при запуске задания. @sql_severity имеет значение int с значением по умолчаниюNULL.

[ @start_run_date = ] start_run_date

Дата запуска задания. @start_run_date имеет значение int с значением по умолчаниюNULL. @start_run_date необходимо ввести в форме, где yyyy имеется четырехзначный yyyyMMddгод, MM является двухзначным именем месяца и dd является двухзначным именем дня.

[ @end_run_date = ] end_run_date

Дата завершения задания. @end_run_date имеет значение int с значением по умолчаниюNULL. @end_run_date необходимо ввести в форме yyyyMMdd, где yyyy имеется четырехзначный год, MM является двухзначным именем месяца и dd является двухзначным именем дня.

[ @start_run_time = ] start_run_time

Время запуска задания. @start_run_time имеет значение int с значением по умолчаниюNULL. @start_run_time необходимо ввести в форме HHmmss, где HH двухзначный час дня, mm является двухзначной минутой дня и ss является двухзначной секундой дня.

[ @end_run_time = ] end_run_time

Время завершения выполнения задания. @end_run_time имеет значение int с значением по умолчаниюNULL. @end_run_time необходимо ввести в формеHHmmss, где HH является двухзначный час дня, mm является двухзначной минутой дня и ss является двухзначной секундой дня.

[ @minimum_run_duration = ] minimum_run_duration

Минимальное время для выполнения задания. @minimum_run_duration имеет значение int с значением по умолчаниюNULL. @minimum_run_duration необходимо ввести в формеHHmmss, где HH является двухзначный час дня, mm является двухзначной минутой дня и ss является двухзначной секундой дня.

[ @run_status = ] run_status

Состояние выполнения задания.@run_status является int и может быть одним из этих значений.

значение Описание
0 Неудачно
1 Выполнено
2 Повторить (только для этапа)
3 Отменено
4 Сообщение о проценте выполнения
5 Неизвестно

[ @minimum_retries = ] minimum_retries

Минимальное число повторных попыток выполнить задание. @minimum_retries имеет значение int с значением по умолчаниюNULL.

[ @oldest_first = ] oldest_first

Следует ли сначала представить выходные данные с самыми старыми заданиями. @oldest_first имеет значение int с значением по умолчанию0.

  • 0 сначала представляет самые новые задания.
  • 1 сначала представляет самые старые задания.

[ @server = ] N'server'

Имя сервера, на котором было выполнено задание. @server имеет имя sysname с значением по умолчаниюNULL.

[ @mode = ] 'mode'

Указывает, выводит ли SQL Server все столбцы в результирующем наборе (FULL) или сводку (SUMMARY) столбцов. @mode — varchar(7) с значением по умолчаниюSUMMARY.

Значения кода возврата

0 (успешно) или 1 (сбой).

Результирующий набор

Фактический список столбцов зависит от значения @mode. Самый полный набор столбцов показан в следующей таблице и возвращается при @modeFULL.

Имя столбца Тип данных Description
instance_id int Идентификационный номер записи журнала.
job_id uniqueidentifier Идентификатор задания.
job_name sysname Имя задания.
step_id int Идентификационный номер шага (0 для журнала заданий).
step_name sysname Имя шага (NULL для журнала заданий).
sql_message_id int На шаге Transact-SQL при выполнении команды обнаружен последний номер ошибки Transact-SQL.
sql_severity int На шаге Transact-SQL при выполнении команды возникла самая высокая серьезность ошибки Transact-SQL.
message nvarchar(1024) Запись в журнале о задании или этапе.
run_status int Результат задания или этапа.
run_date int Дата начала выполнения задания или этапа.
run_time int Дата начала выполнения задания или этапа.
run_duration int Истекло время выполнения задания или шага в HHmmss формате.
operator_emailed nvarchar(20) Оператор, который был отправлен по электронной почте об этом задании (для NULL журнала шагов).
operator_netsent nvarchar(20) Оператор, который был отправлен сетевое сообщение об этом задании (для NULL журнала шагов).
operator_paged nvarchar(20) Оператор, который был страницы относительно этого задания (для NULL журнала шагов).
retries_attempted int Количество повторных попыток запуска этапа (всегда 0 для журнала заданий).
server nvarchar(30) Сервер, на котором выполняется задание или этап. Всегда (local).

Замечания

sp_help_jobhistory возвращает отчет с историей указанных запланированных заданий. Если не указаны параметры, отчет содержит журнал всех заданий в расписании.

Разрешения

Вы можете предоставить EXECUTE разрешения для этой процедуры, но эти разрешения могут быть переопределены во время обновления SQL Server.

Другим пользователям необходимо предоставить одну из следующих агент SQL Server предопределенных ролей базы данных в msdb базе данных:

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

Дополнительные сведения о разрешениях этих ролей см. в разделе Предопределенные роли базы данных агента SQL Server.

Члены роли базы данных SQLAgentUserRole могут просматривать журнал только для заданий, принадлежащих им.

Примеры

А. Вывод списка всех сведений о задании

В следующем примере отображаются все сведения о задании NightlyBackups.

USE msdb;
GO

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

B. Вывод сведений о заданиях, которые соответствуют определенным условиям

Следующий пример иллюстрирует вывод всех сведений о шагах заданий, завершившихся неудачно с кодом ошибки 50100 (пользовательская ошибка) и уровнем серьезности 20.

USE msdb;
GO

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