Transact-SQL 参考

sp_update_jobstep

更改用于自动执行操作的作业中某一步骤的设置。

语法

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]

参数

[@job_id =] job_id

是该步骤所属于的作业的标识号。job_id 的数据类型为 uniqueidentifier,其默认值为 NULL。

[@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(3200),其默认值为 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_action4 时,所要执行的此作业中步骤的标识号。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(30),默认值为 NULL。

[@database_name =] 'database'

是 TSQL 步骤要在其中执行的数据库的名称。database 的数据类型为 sysname,其默认值为 NULL。

[@database_user_name =] 'user'

是执行 TSQL 步骤时所使用的用户账号名称。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。此参数仅对 TSQL 或 CmdExec 子系统内运行的命令有效。

[@flags =] flag

控制行为的选项。flags 的数据类型为 int,可以是下列值之一。

描述
2 追加到输出文件。
4 重写输出文件。
0(默认值) 未设置选项。

返回代码值

0(成功)或 1(失败)

注释

sp_update_jobstep 必须从 msdb 数据库中运行。

更新作业步骤将增加作业的版本号。

权限

执行权限默认授予 public 角色。

示例

下例将作业 Archive Tables 的第 4 步的名称更改为 Sales Detail。

USE msdb
EXEC sp_update_jobstep @job_name = 'Archive Tables', @step_id = 4,
   @step_name = 'Sales Detail'

请参见

修改和查看作业

sp_delete_jobstep

sp_help_jobstep

系统存储过程