• 相关软件
    >sp_add_jobstep 创建者:webmaster 更新时间:2006-02-16 15:51

    将一个步骤(操作)添加到作业中。



    语法


    sp_add_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 = ] 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_idjob_name,但不能两个都指定。



    [@step_id =] step_id]



    作业步骤的序列标识号。步骤标识号从 1 开始,并以 1 为增量,中间无间隙。如果在现有序列中插入步骤,则序列号可以自动调整。如果没有指定 step_id,则提供一个值。step_id 的数据类型为 int,默认设置为 NULL。



    [@step_name =] 'step_name'



    是步骤的名称。step_name 的数据类型为 sysname,没有默认设置。



    [@subsystem =] 'subsystem'



    是 SQL Server 代理服务用于执行 command 的子系统。subsystem 的数据类型为 nvarchar(40),可以是下列值之一。












































    描述
    'ACTIVESCRIPTING'动态脚本
    'CMDEXEC'操作系统命令或可执行程序
    'DISTRIBUTION'复制分发代理程序作业
    'SNAPSHOT'复制快照代理程序作业
    'LOGREADER'复制日志读取器代理程序作业
    'MERGE'复制合并代理程序作业
    'TSQL'(默认)Transact-SQL 语句



    [@command =] 'command'



     SQLServerAgent 服务通过 subsystem 执行的命令。command 的数据类型为 nvarchar(3200),默认设置为 NULL。command 可包括下面一个或多个区分大小写的令牌,这些令牌在运行时被替换。




















































































    描述
    [A-DBN]数据库名称。如果由某个警报来运行作业,则在转换进程中,该标记会自动地替换版本 6.5 [DBN] 标记。
    [A-SVR]服务器名称。如果由某个警报来运行作业,则在转换进程中,该标记会自动地替换版本 6.5 [SVR] 标记。
    [A-ERR]错误号。如果由某个警报来运行作业,则在转换进程中,该标记会自动地替换版本 6.5 [ERR] 标记。
    [A-SEV]错误严重度。如果由某个警报来运行作业,则在转换进程中,该标记会自动地替换版本 6.5 [SEV] 标记。
    [A-MSG]消息文本。如果由某个警报来运行作业,则在转换进程中,该标记会自动地替换版本6.5 [MSG] 标记。
    [DATE]当前日期(以 YYYYMMDD 格式)。
    [JOBID]作业 ID。
    [MACH]计算机名称。
    [MSSA]主 SQLServerAgent 服务名。
    [SQLDIR]安装 SQL Server 的目录。默认情况下,该值是 C:\Program Files\Microsoft SQL Server\MSSQL。
    [STEPCT]该步骤执行次数(不包括重试)的计数。该步骤命令可以使用它来强制多步骤循环的终止。
    [STEPID]步骤 ID。
    [TIME]当前时间(以 HHMMSS 格式)。
    [STRTTM]作业开始执行的时间(以 HHMMSS 格式)。
    [STRTDT]作业开始执行的日期(以 YYYYMMDD 格式)。



    [@additional_parameters =] 'parameters'



    保留。parameters 的数据类型为 ntext,默认设置为 NULL。



    [@cmdexec_success_code =] code



    CmdExec 子系统命令返回的值,该值表明 command 成功执行。code 的数据类型为 int,默认设置为 0。



    [@on_success_action =] success_action



    步骤成功时所执行的操作。success_action 的数据类型为 tinyint,可以是下列值之一。





























    描述(操作)
    1(默认值)成功后退出
    2失败后退出
    3转到下一步
    4转到步骤 on_success_step_id



    [@on_success_step_id =] success_step_id



    步骤成功并且 success_action 4 时所执行的该作业中步骤的 ID。success_step_id 的数据类型为 int,默认设置为0。



    [@on_fail_action =] fail_action



    步骤失败时所执行的操作。fail_action 的数据类型为 tinyint,可以是下列值之一。





























    描述(操作)
    1成功后退出
    2(默认值)失败后退出
    3转到下一步
    4转到步骤 on_fail_step_id



    [@on_fail_step_id =] fail_step_id



    步骤失败并且 fail_action 4 时所要执行的该作业中步骤的 ID。fail_step_id 的数据类型为 int,默认设置为 0。



    [@server =] 'server'



    保留。server 的数据类型为 nvarchar(30),默认值为 NULL。



    [@database_name =] 'database'



    执行 TSQL 步骤的数据库名称。database 的数据类型为 sysname,默认设置为 NULL,在该情况下使用 master 数据库。



    [@database_user_name =] 'user'



    是执行 TSQL 步骤时所使用的用户账号名称。user sysname 类型,其默认值为 NULL。user 为 NULL 时,步骤运行在作业所有者的用户 database 上下文中。



    [@retry_attempts =] retry_attempts



    该步骤失败时所使用的重新尝试次数。retry_attempts 的数据类型为 int,默认设置为 0,表示不允许重新尝试。



    [@retry_interval =] retry_interval



    重新尝试之间的时间量(以分钟为单位)。retry_interval 的数据类型为 int,默认设置为 0,表示重试间隔为 0 分钟。



    [@os_run_priority =] run_priority



    保留。



    [@output_file_name =] 'file_name'



    保存该步骤的输出的文件名称。file_name 的数据类型为 nvarchar(200),默认设置为 NULL。file_name 可以包含 command 下的一个或多个令牌。该参数只有同 TSQL 或 CmdExec 子系统上运行的命令一起使用时才有效。



    [@flags =] flags



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
























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



    返回代码值


    0(成功)或 1(失败)



    结果集




    注释


    SQL Server 企业管理器提供易于使用的图形方法来管理作业,建议使用该方法创建和管理作业基本结构。



    权限


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



    示例


    下面的示例创建一个作业步骤,该作业步骤更改名为 sales 的数据库的只读访问权限。此外,此示例指定进行 5 次重新尝试,重试间隔为 5 分钟。



    说明  此示例假设 Weekly Sales Data Backup 作业已经存在。



    USE msdb
    EXEC sp_add_jobstep @job_name = 'Weekly Sales Data Backup',
      @step_name = 'Set database to read only',
      @subsystem = 'TSQL',
      @command = 'exec sp_dboption ''sales'', ''read only'', ''true''',
      @retry_attempts = 5,
      @retry_interval = 5
    相关文章
    本页查看次数: