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


sp_update_job (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Обновляет атрибуты существующего задания, созданного в службе агент SQL Server.

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

Синтаксис

sp_update_job
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @new_name = ] N'new_name' ]
    [ , [ @enabled = ] enabled ]
    [ , [ @description = ] N'description' ]
    [ , [ @start_step_id = ] start_step_id ]
    [ , [ @category_name = ] N'category_name' ]
    [ , [ @owner_login_name = ] N'owner_login_name' ]
    [ , [ @notify_level_eventlog = ] notify_level_eventlog ]
    [ , [ @notify_level_email = ] notify_level_email ]
    [ , [ @notify_level_netsend = ] notify_level_netsend ]
    [ , [ @notify_level_page = ] notify_level_page ]
    [ , [ @notify_email_operator_name = ] N'notify_email_operator_name' ]
    [ , [ @notify_netsend_operator_name = ] N'notify_netsend_operator_name' ]
    [ , [ @notify_page_operator_name = ] N'notify_page_operator_name' ]
    [ , [ @delete_level = ] delete_level ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

Аргументы

[ @job_id = ] 'job_id'

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

Необходимо указать @job_id или @job_name, но их нельзя указать.

[ @job_name = ] N'job_name'

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

Необходимо указать @job_id или @job_name, но их нельзя указать.

[ @new_name = ] N'new_name'

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

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

Указывает, включено ли задание (1) или не включено (0). @enabled крошечный, с значением по умолчаниюNULL.

[ @description = ] N'description'

Описание задания. @description — nvarchar(512) с значением по умолчаниюNULL.

[ @start_step_id = ] start_step_id

Идентификатор первого этапа, выполняемого в ходе задания. @start_step_id имеет значение int с значением по умолчаниюNULL.

[ @category_name = ] N'category_name'

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

[ @owner_login_name = ] N'owner_login_name'

Имя входа, которое владеет заданием. @owner_login_name имеет имя sysname с значением по умолчаниюNULL. Только члены предопределенных ролей сервера sysadmin могут изменить владение заданием.

[ @notify_level_eventlog = ] notify_level_eventlog

Указывает, следует ли помещать запись в журнал приложений Microsoft Windows для данного задания. @notify_level_eventlog является int и может быть одним из этих значений.

Значение Описание (действие)
0 Никогда
1 При успешном завершении
2 При сбое
3 Всегда

[ @notify_level_email = ] notify_level_email

Указывает, нужно ли отправить сообщение электронной почты по завершении этого задания. @notify_level_email имеет значение int с значением по умолчаниюNULL. @notify_level_email использует те же значения, что и @notify_level_eventlog.

[ @notify_level_netsend = ] notify_level_netsend

Указывает, нужно ли отправить сетевое сообщение по завершении этого задания. @notify_level_netsend имеет значение int с значением по умолчаниюNULL. @notify_level_netsend использует те же значения, что и @notify_level_eventlog.

[ @notify_level_page = ] notify_level_page

Указывает, необходимо ли отправить страницу по завершении этого задания. @notify_level_page имеет значение int с значением по умолчаниюNULL. @notify_level_page использует те же значения, что и @notify_level_eventlog.

[ @notify_email_operator_name = ] N'notify_email_operator_name'

Имя оператора, которому отправляется электронная почта при достижении email_level . @notify_email_operator_name — sysname с значением по умолчаниюNULL.

[ @notify_netsend_operator_name = ] N'notify_netsend_operator_name'

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

[ @notify_page_operator_name = ] N'notify_page_operator_name'

Имя оператора, которому отправляется страница. @notify_page_operator_name — sysname с значением по умолчаниюNULL.

[ @delete_level = ] delete_level

Указывает, когда необходимо удалить задание. @delete_level имеет значение int с значением по умолчаниюNULL. @delete_level используют те же значения, что и @notify_level_eventlog.

[ @automatic_post = ] automatic_post

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

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

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

Замечания

sp_update_job должен выполняться из msdb базы данных.

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

Эта хранимая процедура использует имя аналогичного sp_update_job объекта для службы заданий Elastic Azure для База данных SQL Azure. Сведения о версии эластичных заданий см. в разделе jobs.sp_update_job (задания Эластичных баз данных Azure).

Разрешения

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

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

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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

Только члены sysadmin могут использовать эту хранимую процедуру для изменения атрибутов заданий, принадлежащих другим пользователям.

Примеры

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

USE msdb;
GO

EXEC dbo.sp_update_job
    @job_name = N'NightlyBackups',
    @new_name = N'NightlyBackups -- Disabled',
    @description = N'Nightly backups disabled during server migration.',
    @enabled = 0;
GO