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


sp_update_jobstep (Transact-SQL)

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

Изменяет параметр шага в задании, который используется для выполнения автоматизированных действий в службе агент SQL Server.

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

Синтаксис

sp_update_jobstep
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    , [ @step_id = ] step_id
    [ , [ @step_name = ] N'step_name' ]
    [ , [ @subsystem = ] N'subsystem' ]
    [ , [ @command = ] N'command' ]
    [ , [ @additional_parameters = ] N'additional_parameters' ]
    [ , [ @cmdexec_success_code = ] cmdexec_success_code ]
    [ , [ @on_success_action = ] on_success_action ]
    [ , [ @on_success_step_id = ] on_success_step_id ]
    [ , [ @on_fail_action = ] on_fail_action ]
    [ , [ @on_fail_step_id = ] on_fail_step_id ]
    [ , [ @server = ] N'server' ]
    [ , [ @database_name = ] N'database_name' ]
    [ , [ @database_user_name = ] N'database_user_name' ]
    [ , [ @retry_attempts = ] retry_attempts ]
    [ , [ @retry_interval = ] retry_interval ]
    [ , [ @os_run_priority = ] os_run_priority ]
    [ , [ @output_file_name = ] N'output_file_name' ]
    [ , [ @flags = ] flags ]
    [ , [ @proxy_id = ] proxy_id ]
    [ , [ @proxy_name = ] N'proxy_name' ]
[ ; ]

Аргументы

[ @job_id = ] 'job_id'

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

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

[ @job_name = ] N'job_name'

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

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

[ @step_id = ] step_id

Идентификационный номер шага задания, которое необходимо изменить. @step_id не используется без значения по умолчанию. Это число не может быть изменено.

[ @step_name = ] N'step_name'

Новое имя шага. @step_name — sysname, значение по умолчанию NULL— sysname.

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

Подсистема, используемая агент SQL Server для выполнения @command. @subsystem — nvarchar(40) с значением по умолчаниюNULL.

[ @command = ] N'command'

Команды, которые необходимо выполнить через @subsystem. @command — nvarchar(max) с значением по умолчаниюNULL.

[ @additional_parameters = ] N'additional_parameters'

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

[ @cmdexec_success_code = ] cmdexec_success_code

Значение, возвращаемое командой подсистемы CmdExec , указывающее, что команда выполнена успешно. @cmdexec_success_code имеет значение int с значением по умолчаниюNULL.

[ @on_success_action = ] on_success_action

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

Значение Описание (действие)
1 Завершить с успешным выполнением.
2 Завершить с ошибкой.
3 Перейти к следующему шагу.
4 Перейдите к шагу @on_success_step_id

[ @on_success_step_id = ] on_success_step_id

Идентификационный номер шага в этом задании для выполнения, если шаг выполнен успешно и @on_success_action.4 @on_success_step_id имеет значение int с значением по умолчаниюNULL.

[ @on_fail_action = ] on_fail_action

Действие, которое необходимо выполнить, если шаг завершился с ошибкой. @on_fail_action крошечный и может иметь одно из этих значений.

Значение Описание (действие)
1 Завершить с успешным выполнением.
2 Завершить с ошибкой.
3 Перейти к следующему шагу.
4 Перейти к шагу @on_fail_step_id

[ @on_fail_step_id = ] on_fail_step_id

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

[ @server = ] N'server'

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

[ @database_name = ] N'database_name'

Имя базы данных, в которой выполняется шаг Transact-SQL. @database_name — sysname с значением по умолчаниюNULL. Имена, заключенные в квадратные скобки ([]) не допускаются.

[ @database_user_name = ] N'database_user_name'

Имя пользователя базы данных, используемого при выполнении шага Transact-SQL. @database_user_name — sysname с значением по умолчаниюNULL.

[ @retry_attempts = ] retry_attempts

Число повторных попыток, предпринимаемых при завершении данного шага с ошибкой. @retry_attempts имеет значение int с значением по умолчаниюNULL.

[ @retry_interval = ] retry_interval

Время ожидания в минутах между попытками повтора. @retry_interval имеет значение int с значением по умолчаниюNULL.

[ @os_run_priority = ] os_run_priority

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

[ @output_file_name = ] N'output_file_name'

Имя файла, в котором будут сохранены выходные данные этого шага. @output_file_name — nvarchar(200) с значением по умолчаниюNULL. Этот параметр действителен только с командами, выполняемыми в подсистемах Transact-SQL или CmdExec .

Чтобы задать @output_file_name обратноNULL, необходимо задать для @output_file_name пустую строку или строку пустых символов, но ее нельзя использоватьCHAR(32).

Например, установление данного аргумента равным пустой строке производится следующим образом:

@output_file_name = ' '

[ @flags = ] флаги

Параметр, контролирующий поведение. @flags имеет значение int с значением по умолчаниюNULL.

значение Описание
0 (по умолчанию) Переписать выходной файл.
2 Добавить к выходному файлу.
4 Записать вывод шага задания Transact-SQL в журнал шагов.
8 Записать журнал в таблицу (переписать существующий журнал).
16 Записать журнал в таблицу (добавить к существующему журналу).

[ @proxy_id = ] proxy_id

Идентификатор учетной записи-посредника, от имени которой выполняется шаг задания. @proxy_id имеет значение int с значением по умолчаниюNULL. Если @proxy_id не задано, @proxy_name не указан и не указан @database_user_name, шаг задания выполняется в качестве учетной записи службы для агент SQL Server.

[ @proxy_name = ] N'proxy_name'

Имя учетной записи-посредника, от имени которой выполняется шаг задания. @proxy_name — sysname с значением по умолчаниюNULL. Если @proxy_id не задано, @proxy_name не указан и не указан @database_user_name, шаг задания выполняется в качестве учетной записи службы для агент SQL Server.

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

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

Замечания

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

Обновление шага задания увеличивает номер версии задания.

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

Разрешения

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

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

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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

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

Если шаг задания требует доступа к учетной записи-посреднику, создатель шага задания должен обеспечить ему доступ к такой записи. Все подсистемы, за исключением Transact-SQL, требуют учетную запись-посредник. Члены sysadmin имеют доступ ко всем прокси-серверам и могут использовать учетную запись службы агент SQL Server для прокси-сервера.

Примеры

Следующий пример изменяет количество повторных попыток для первого шага задания Weekly Sales Data Backup. После выполнения этого примера число попыток повторных попыток равно 10.

USE msdb;
GO

EXEC dbo.sp_update_jobstep
    @job_name = N'Weekly Sales Data Backup',
    @step_id = 1,
    @retry_attempts = 10;
GO