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


sp_help_job (Transact-SQL)

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

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

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

Синтаксис

sp_help_job
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @job_aspect = ] 'job_aspect' ]
    [ , [ @job_type = ] 'job_type' ]
    [ , [ @owner_login_name = ] N'owner_login_name' ]
    [ , [ @subsystem = ] N'subsystem' ]
    [ , [ @category_name = ] N'category_name' ]
    [ , [ @enabled = ] enabled ]
    [ , [ @execution_status = ] execution_status ]
    [ , [ @date_comparator = ] 'date_comparator' ]
    [ , [ @date_created = ] date_created ]
    [ , [ @date_last_modified = ] date_last_modified ]
    [ , [ @description = ] N'description' ]
[ ; ]

Аргументы

[ @job_id = ] 'job_id'

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

Чтобы просмотреть определенное задание, необходимо указать @job_id или @job_name . Опустите как @job_id, так и @job_name для возврата сведений обо всех заданиях.

[ @job_name = ] N'job_name'

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

Чтобы просмотреть определенное задание, необходимо указать @job_id или @job_name . Опустите как @job_id, так и @job_name для возврата сведений обо всех заданиях.

[ @job_aspect = ] 'job_aspect'

Отображаемое задание атрибута. @job_aspect — varchar(9) и может быть одним из этих значений.

значение Описание
ALL Сведения об аспекте задания
JOB Информация о должностях
SCHEDULES Сведения о расписании
STEPS Сведения об шаге задания
TARGETS Сведения о цели

[ @job_type = ] 'job_type'

Тип заданий, которые необходимо включить в отчет.@job_type — varchar(12), с значением по умолчаниюNULL. @job_type может быть LOCAL или MULTI-SERVER.

[ @owner_login_name = ] N'owner_login_name'

Имя входа владельца задания. @owner_login_name имеет имя sysname с значением по умолчаниюNULL.

[ @subsystem = ] N'подсистема

Имя подсистемы. @subsystem — nvarchar(40) с значением по умолчаниюNULL.

[ @category_name = ] N'category_name'

Имя категории. @category_name — sysname с значением по умолчаниюNULL.

[ @enabled = ] включен

Номер, указывающий, для каких заданий отображаются сведения — включенных или отключенных. @enabled крошечный, с значением по умолчаниюNULL.

  • 1 указывает на включенные задания.
  • 0 указывает отключенные задания.

[ @execution_status = ] execution_status

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

значение Описание
0 Возвращает только те задания, которые не являются неактивными или приостановленными.
1 Выполняющиеся.
2 Ожидающие потока.
3 Ожидающие повторной попытки.
4 Бездействующие.
5 Приостановленные.
7 Выполняющие завершающие действия.

[ @date_comparator = ] 'date_comparator'

Оператор сравнения для сравнения @date_created и @date_last_modified. @date_comparator является char(1), и может быть =, <или >.

[ @date_created = ] date_created

Дата создания задания. @date_created — datetime с значением по умолчаниюNULL.

[ @date_last_modified = ] date_last_modified

Дата последнего изменения задания. @date_last_modified — datetime с значением по умолчаниюNULL.

[ @description = ] N'description'

Описание задания. @description — nvarchar(512) с значением по умолчаниюNULL. @description могут включать подстановочные знаки для сопоставления шаблонов.

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

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

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

Если аргументы не указаны, sp_help_job возвращает этот результирующий набор.

Имя столбца Тип данных Description
job_id uniqueidentifier Уникальный идентификатор задания.
originating_server nvarchar(30) Имя сервера, от которого поступило задание.
name sysname Имя задания.
enabled tinyint Указывает, включено ли задание, чтобы он смог выполнить.
description nvarchar(512) Описание задания.
start_step_id int Идентификатор шага задания, с которого должно начаться выполнение.
category sysname Категория задания.
owner sysname Владелец задания.
notify_level_eventlog int Битовая маска, указывающая обстоятельства, в которых событие уведомления должно быть зарегистрировано в журнале приложений Microsoft Windows. Может принимать одно из следующих значений:

0 = никогда
1 = при успешном выполнении задания
2 = при сбое задания
3 = каждый раз, когда задание завершается (независимо от результата задания)
notify_level_email int Битовая маска, указывающая обстоятельства, в которых должно быть отправлено уведомление, когда задание завершится. Возможные значения совпадают с notify_level_eventlogдопустимыми значениями.
notify_level_netsend int Битовая маска, указывающая обстоятельства, в которых сетевое сообщение должно быть отправлено при завершении задания. Возможные значения совпадают с notify_level_eventlogдопустимыми значениями.
notify_level_page int Битовая маска, указывающая обстоятельства, в которых должна отправляться страница при завершении задания. Возможные значения совпадают с notify_level_eventlogдопустимыми значениями.
notify_email_operator sysname Имя адреса электронной почты уведомляемого оператора.
notify_netsend_operator sysname Имя компьютера или пользователя, используемое при отправке сетевых сообщений.
notify_page_operator sysname Имя компьютера или пользователя, используемое при отправке сообщения на пейджер.
delete_level int Битовая маска, указывающая обстоятельства, в которых задание должно быть удалено при завершении задания. Возможные значения совпадают с notify_level_eventlogдопустимыми значениями.
date_created datetime Дата создания задания.
date_modified datetime Дата последнего изменения задания.
version_number int Версия задания (автоматически обновляется каждый раз при изменении задания).
last_run_date int Дата последнего запуска задания на выполнение.
last_run_time int Время последнего запуска задания на выполнение.
last_run_outcome int Результат последнего выполнения задания:

0 = сбой
1 = успешно выполнено
3 = отменено
5 = неизвестно
next_run_date int Дата следующего запуска задания по расписанию.
next_run_time int Время следующего запуска задания по расписанию.
next_run_schedule_id int Идентификационный номер следующего запуска по расписанию.
current_execution_status int Текущее состояние выполнения:

1 = выполнение
2 = ожидание потока
3 = между повторными попытками
4 = бездействия
5 = приостановлено
6 = устаревшее
7 = PerformingCompletionActions
current_execution_step sysname Текущий этап выполнения задания.
current_retry_attempt int Если задание выполняется, и шаг был извлечен, это текущая попытка повтора.
has_step int Число шагов в задании.
has_schedule int Число назначенных запусков задания в расписании.
has_target int Число целевых серверов в задании.
type int Тип задания.

1 = локальное задание.
2 = многосерверное задание.
0 = задание не имеет целевых серверов.

Если указана @job_id или @job_name, sp_help_job возвращает эти дополнительные результирующие наборы для шагов задания, расписаний заданий и целевых серверов заданий.

Это результирующий набор для шагов задания.

Имя столбца Тип данных Description
step_id int Уникальный для данного задания идентификатор этапа.
step_name sysname Назовите шаг.
subsystem nvarchar(40) Подсистема, в которой выполняется команда этапа.
command nvarchar(3200) Команда для выполнения.
flags nvarchar(4000) Битовая маска значений, управляющая режимом шага.
cmdexec_success_code int Для шага CmdExec это код завершения процесса успешной команды.
on_success_action nvarchar(4000) Что делать в случае успешного выполнения этапа:

1 = выход с успехом.
2 = выход из строя сбоем.
3 = Перейти к следующему шагу.
4 = Перейти к шагу.
on_success_step_id int Если on_success_action это 4так, это указывает на следующий шаг для выполнения.
on_fail_action nvarchar(4000) Действие, предпринимаемое в случае ошибки этапа. Значения совпадают с on_success_actionзначениями.
on_fail_step_id int Если on_fail_action это 4так, это указывает на следующий шаг для выполнения.
server sysname Зарезервировано.
database_name sysname Для шага Transact-SQL это база данных, в которой выполняется команда.
database_user_name sysname Для шага Transact-SQL это контекст пользователя базы данных, в котором выполняется команда.
retry_attempts int Максимальное количество попыток выполнения команды (если это неудачно) перед сбоем шага.
retry_interval int Интервал в минутах между попытками повтора.
os_run_priority varchar(4000) Зарезервировано.
output_file_name varchar(200) Файл, в который должны записываться выходные данные команды (только шаги Transact-SQL и CmdExec ).
last_run_outcome int Результат последнего запуска этапа:

0 = сбой
1 = успешно выполнено
3 = отменено
5 = неизвестно
last_run_duration int Продолжительность этапа в секундах при последнем запуске.
last_run_retries int Число повторов команды при последнем запуске этапа.
last_run_date int Дата начала последнего выполнения этапа.
last_run_time int Время начала последнего выполнения этапа.
proxy_id int Учетная запись-посредник для шага задания.

Это результирующий набор для расписания задания.

Имя столбца Тип данных Description
schedule_id int Идентификатор расписания (уникальный среди всех заданий).
schedule_name sysname Имя расписания (уникально только для данного задания).
enabled int Является ли расписание активным (1) или нет (0).
freq_type int Значение, указывающее, как должно выполняться задание:

1 = один раз
4 = ежедневно
8 = еженедельно
16 = ежемесячно
32 = ежемесячно, относительно freq_interval
64= запуск при запуске службы агент SQL Server.
freq_interval int Дни, в которые выполняется задание. Значение зависит от значения freq_type. Дополнительные сведения см. в sp_add_schedule
freq_subday_type int Единицы для freq_subday_interval. Дополнительные сведения см. в sp_add_schedule
freq_subday_interval int Количество периодов, возникающих freq_subday_type между каждым выполнением задания. Дополнительные сведения см. в sp_add_schedule
freq_relative_interval int Запланированное задание в freq_interval каждом месяце. Дополнительные сведения см. в sp_add_schedule
freq_recurrence_factor int Число месяцев между выполнениями задания по расписанию.
active_start_date int Дата начала выполнения задания.
active_end_date int Дата завершения выполнения задания.
active_start_time int Время начала выполнения задания active_start_date.
active_end_time int Время завершения выполнения задания active_end_date.
date_created datetime Дата создания расписания.
schedule_description nvarchar(4000) Описание расписания на английском языке (если запрошено).
next_run_date int Дата следующего расписания приводит к выполнению задания.
next_run_time int Время следующего расписания приводит к выполнению задания.
schedule_uid uniqueidentifier Идентификатор расписания.
job_count int Возвращает число заданий, ссылающихся на данное расписание.

Это результирующий набор для целевых серверов задания.

Имя столбца Тип данных Description
server_id int Идентификатор целевого сервера.
server_name nvarchar(30) Имя компьютера целевого сервера.
enlist_date datetime Дата прикрепления целевого сервера к главному серверу.
last_poll_date datetime Дата последнего опроса главного сервера целевым сервером.
last_run_date int Дата последнего запуска задания на выполнение на данном целевом сервере.
last_run_time int Время последнего запуска задания на выполнение на данном целевом сервере.
last_run_duration int Продолжительность последнего выполнения задания на целевом сервере.
last_run_outcome tinyint Результат последнего выполнения задания на данном сервере:

0 = сбой
1 = успешно выполнено
3 = отменено
5 = неизвестно
last_outcome_message nvarchar(1024) Сообщение о результате последнего выполнения задания на данном целевом сервере.

Разрешения

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

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

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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

Члены SQLAgentUserRole могут просматривать только собственные задания. Члены sysadmin, SQLAgentReaderRole и SQLAgentOperatorRole могут просматривать все локальные и многосерверные задания.

Примеры

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

На следующем примере показано, как процедура sp_help_job, выполняемая без параметров, возвращает сведения обо всех заданиях, определенных в данный момент в базе данных msdb.

USE msdb;
GO

EXEC dbo.sp_help_job;
GO

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

В следующем примере показано, как выводятся сведения о многосерверных заданиях, владельцем которых является françoisa, которые включены и выполняются.

USE msdb;
GO

EXEC dbo.sp_help_job
   @job_type = N'MULTI-SERVER',
   @owner_login_name = N'françoisa',
   @enabled = 1,
   @execution_status = 1;
GO

C. Перечисление всех аспектов сведений для задания

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

USE msdb;
GO

EXEC dbo.sp_help_job
    @job_name = N'NightlyBackups',
    @job_aspect = N'ALL';
GO