更改用于自动执行操作的作业中某一步骤的设置。
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_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(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'