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


sp_update_jobstep (Transact-SQL)

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

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в 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'
    Подсистема, используемая агентом 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

См. также

Справочник

sp_delete_jobstep (Transact-SQL)

sp_help_jobstep (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)

Основные понятия

Просмотр или изменение заданий