sp_update_jobstep (Transact-SQL)

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

Значок ссылки на разделСоглашение о синтаксисе в Transact-SQL

Синтаксис

sp_update_jobstep 
     {   [@job_id =] job_id 
       | [@job_name =] 'job_name' } ,
     [@step_id =] step_id
     [ , [@step_name =] 'step_name' ]
     [ , [@subsystem =] 'subsystem' ] 
     [ , [@command =] 'command' ]
     [ , [@additional_parameters =] 'parameters' ]
     [ , [@cmdexec_success_code =] success_code ]
     [ , [@on_success_action =] success_action ] 
     [ , [@on_success_step_id =] success_step_id ]
          [ , [@on_fail_action =] fail_action ] 
          [ , [@on_fail_step_id =] fail_step_id ]
     [ , [@server =] 'server' ] 
     [ , [@database_name =] 'database' ]
     [ , [@database_user_name =] 'user' ] 
     [ , [@retry_attempts =] retry_attempts ]
     [ , [@retry_interval =] retry_interval ] 
     [ , [@os_run_priority =] run_priority ]
     [ , [@output_file_name =] 'file_name' ] 
     [ , [@flags =] flags ]
     [ ,  {   [ @proxy_id = ] proxy_id 
            | [ @proxy_name = ] 'proxy_name' } 

Аргументы

  • [ @job_id =] job_id
    Идентификационный номер задания, которому принадлежит шаг. Аргумент job_id имеет тип uniqueidentifier и значение по умолчанию NULL. Необходимо указывать либо аргумент job_id, либо аргумент job_name, но не оба аргумента одновременно.

  • [ @job_name =] 'job_name'
    Имя задания, которому принадлежит шаг. Аргумент job_name имеет тип sysname и значение по умолчанию NULL. Необходимо указывать либо аргумент job_id, либо аргумент job_name, но не оба аргумента одновременно.

  • [ @step_id =] step_id
    Идентификационный номер шага задания, которое необходимо изменить. Данный номер не может быть изменен. Аргумент step_id имеет тип int и не имеет значения по умолчанию.

  • [ @step_name =] 'step_name'
    Новое имя шага. Аргумент step_name имеет тип sysname и значение по умолчанию NULL.

  • [ @subsystem =] 'subsystem'
    Подсистема, используемая агентом Microsoft SQL Server для выполнения command. Аргумент subsystem имеет тип nvarchar(40) и значение по умолчанию NULL.

  • [ @command =] 'command'
    Команды, предназначенные для выполнения с помощью аргумента subsystem. Аргумент command имеет тип nvarchar(max) и значение по умолчанию NULL.

  • [ @additional_parameters =] 'parameters'
    Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

  • [ @cmdexec_success_code =] success_code
    Значение, возвращенное командой подсистемы CmdExec, указывает на то, что команда, указанная аргументом command, выполнена успешно. Аргумент success_code имеет тип int и значение по умолчанию NULL.

  • [ @on_success_action =] success_action
    Действие, которое необходимо выполнить, если шаг завершился успешно. Аргумент success_action имеет тип tinyint, значение по умолчанию NULL и может принимать одно из следующих значений.

    Значение

    Описание (действие)

    1

    Завершить с успешным выполнением.

    2

    Завершить с неудачным выполнением.

    3

    Перейти к следующему шагу.

    4

    Перейти к этапу success_step_id..

  • [ @on_success_step_id =] success_step_id
    Идентификационный номер шага данного задания, предназначенного для выполнения, если шаг завершился успешно и если аргумент success_action равен 4. Аргумент success_step_id имеет тип int и значение по умолчанию NULL.

  • [ @on_fail_action =] fail_action
    Действие, которое необходимо выполнить, если шаг завершился неудачно. Аргумент fail_action имеет тип tinyint, значение по умолчанию NULL и может принимать одно из следующих значений.

    Значение

    Описание (действие)

    1

    Завершить с успешным выполнением.

    2

    Завершить с ошибкой.

    3

    Перейти к следующему шагу.

    4

    Перейти к шагу fail_step_id.

  • [ @on_fail_step_id =] fail_step_id
    Идентификационный номер шага данного задания, предназначенного для выполнения, если шаг завершился неудачно и если аргумент fail_action, равен 4. Аргумент fail_step_id имеет тип int и значение по умолчанию NULL.

  • [ @server =] 'server'
    Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется. Аргумент server имеет тип nvarchar(128) и значение по умолчанию NULL.

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

  • [ @database_user_name =] 'user'
    Имя учетной записи пользователя, которая используется при выполнении шага Transact-SQL. Аргумент user имеет тип sysname и значение по умолчанию NULL.

  • [ @retry_attempts =] retry_attempts
    Число повторных попыток, используемое при неудачном завершении данного шага. Аргумент retry_attempts имеет тип int и значение по умолчанию NULL.

  • [ @retry_interval =] retry_interval
    Количество времени (в минутах) между повторными попытками. Аргумент retry_interval имеет тип int и значение по умолчанию NULL.

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

  • [ @output_file_name =] 'file_name'
    Имя файла, в котором будет сохранен выход данного шага. Аргумент file_name имеет тип nvarchar(200) и значение по умолчанию NULL. Данный аргумент действителен только с командами, запущенными в подсистемах Transact-SQL или CmdExec.

    Чтобы вернуть аргументу output_file_name значение NULL, необходимо установить аргумент output_file_name равным пустой строке (' ') или строке пробелов, но нельзя использовать функцию CHAR(32). Например, установление данного аргумента равным пустой строке производится следующим образом:

    @output_file_name = ' '

  • [ @flags =] flags
    Параметр, контролирующий поведение. Аргумент flags имеет тип int и может принимать одно из следующих значений.

    Значение

    Описание

    0 (по умолчанию)

    Переписать выходной файл.

    2

    Добавить к выходному файлу.

    4

    Записать вывод шага задания Transact-SQL в журнал шагов.

    8

    Записать журнал в таблицу (переписать существующий журнал).

    16

    Записать журнал в таблицу (добавить к существующему журналу).

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

  • [ @proxy_name= ] 'proxy_name'
    Имя учетной записи-посредника, под которым выполняется шаг задания. Аргумент proxy_name имеет тип sysname и значение по умолчанию NULL. Если значения аргументов proxy_id, proxy_name и user_name не указаны, шаг задания выполняется как учетная запись службы агента SQL Server.

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

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

Процедура sp_update_jobstep должна быть выполнена из базы данных msdb.

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

Разрешения

По умолчанию, данную хранимую процедуру могут выполнять члены предопределенной роли сервера sysadmin. Другим пользователям должна быть предоставлена одна из следующих предопределенных ролей базы данных агента 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