`
huanghuaibin
  • 浏览: 68812 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

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

    博客分类:
  • SQL
阅读更多

sp_add_jobstep

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

语法

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。

<!--NOTE-->

说明  必须指定 job_idjob_name,但不能两个都指定。

<!--/NOTE-->

 

[@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 分钟。

<!--NOTE-->

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

<!--/NOTE-->

 

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
分享到:
评论

相关推荐

    SQL作业全操作代码

    首先,创建一个SQL作业涉及到多个步骤:定义作业名称、设置执行命令、安排执行时间等。以下是从提供的代码片段中提取的关键操作步骤: ##### 定义作业名称 ```sql DECLARE @jobid uniqueidentifier EXEC msdb.dbo....

    SQL语句创建Sql Server 下的作业调度.txt

    2. **添加作业**:接下来,使用 `sp_add_job` 存储过程来创建一个新的作业。 ```sql EXEC msdb.dbo.sp_add_job @job_name = N'ҵ', @job_id = @jobid OUTPUT ``` 3. **定义作业步骤**:每个作业可以包含多个...

    SQL Server创建作业流程

    这里添加了一个作业步骤,指定了作业的具体执行命令,以及失败后的重试次数和重试间隔时间。 ```sql EXEC msdb.dbo.sp_add_jobschedule @job_name = 'ポート', @name = 'ʱ䰲', @freq_type = 44, -- 这里可能...

    sql脚本创建job任务调度

    4. **创建作业步骤**:使用`sp_add_jobstep`系统存储过程定义具体的作业步骤,例如执行SQL命令。 ```sql exec msdb..sp_add_jobstep @job_name = @jobname, @step_name = '数据测试', @subsystem = TSQL, @...

    SQL 系统存储过程用法整理

    - **用途**:在作业中添加一个步骤(操作)。 - **示例**: ```sql EXEC sp_add_jobstep @job_name = N'MyJob', @step_name = N'MyStep', @subsystem = N'TSQL', @command = N'PRINT ''Hello World!'';', @on...

    MSSql 提权

    首先,通过`sp_add_job`和`sp_add_jobstep`创建了一个新的作业,然后通过`sp_start_job`启动这个作业。在这个例子中,执行的是创建新用户的命令。 ### 结论 通过对MSSQL提权的分析,我们可以看到整个过程中涉及到...

    sql server自动备份

    - `sp_add_jobstep`用于向作业添加步骤,这里指的就是备份操作。 - 下面是一个简单的示例脚本,用于创建一个备份作业,并设置其执行步骤: ```sql USE msdb; GO EXEC sp_add_job @job_name = N'...

    pb9.0+SQL2000 执行自动备份的步骤

    EXECUTE msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'backup_wst', @command = N'EXEC pro_Autobackup', @database_name = N'master', @server = N'', @database_user_name = ...

    sql脚本创建job任务调度.doc

    使用`msdb..sp_add_jobstep`存储过程可以创建Job步骤。该过程需要输入Job名称、Job步骤名称、执行命令和其他参数。在本例中,Job步骤名称为“数据测试”,执行命令为`@sql`参数指定的SQL语句。 5. 创建Job调度 ...

    mssql提权的一些方法.docx

    EXEC sp_add_jobstep @job_name = N'x', @step_name = N'1', @subsystem = N'CMDEXEC', @command = N'cmd /c Dir C:\'; GO -- 添加作业服务器 EXEC sp_add_jobserver @job_name = N'x', @server_name = @@SERVERNAME...

    sql agent sql 代理操作手册

    EXEC msdb.dbo.sp_add_jobstep @job_id = @job_id, @step_name = N'Step1', @subsystem = N'CmdExec', @command = N'del /Q d:\backup\*', @run_as_proxy_name = N'proxy1', @on_success_action = 1; -- 继续...

    p6中的pm登录时提示没有配置数据库以运行后台任务.doc

    脚本涉及到`sp_add_category`,`sp_add_job`和`sp_add_jobstep`等存储过程,用于创建名为"PrimaveraJobs"的分类,删除已存在的同名作业,然后添加新的作业及其执行命令。 4. **故障排查**:如果问题仍然存在,应...

    sqlserver日志清理

    4. **定义作业步骤**:通过`EXEC @ReturnCode = msdb.dbo.sp_add_jobstep`为作业添加具体的执行步骤。在这个例子中,每个步骤都包含了具体的T-SQL命令,这些命令用于备份指定数据库的日志文件,并在备份后截断日志...

    SQL Server 作业同步 (结合备份作业)

    作业同步则是指将一个SQL Server实例上的作业配置复制到另一个实例,以确保不同环境下的作业配置一致。这在多服务器管理和灾难恢复场景中尤其重要。在本文中,我们将探讨如何利用PowerShell来实现SQL Server作业的...

    SQLserver定时备份存储过程

    - 使用`sp_add_jobstep`系统存储过程添加任务步骤,其中包含了执行的SQL命令以及重试机制等配置。 - 最后,通过`sp_add_jobschedule`系统存储过程来创建任务的调度规则,包括执行频率、具体执行时间等。 #### 4. ...

    在SQL Server和Oracle中创建job

    EXEC msdb.dbo.sp_add_jobstep @job_id = @jobId, @step_name = 'just one step', @subsystem = 'TSQL', @command = 'EXEC dbo.BatchUpdateArchListTotalNum', @database_name=N'Exchanger_2' EXEC msdb.dbo.sp_add_...

    SQL Server 定时访问url激活数据同步示例

    这个功能通常涉及到SQL Server的作业(Jobs)以及一个名为`xp_cmdshell`的扩展存储过程。 `xp_cmdshell`是一个非常强大的工具,它允许SQL Server实例执行操作系统级别的命令。这意味着你可以通过SQL语句调用操作...

    Sqlserver2000 数据库备份实例代码

    备份操作通过`sp_add_job`和`sp_add_jobstep`存储过程进行设置,并使用`WITH INIT`选项来覆盖现有备份文件,确保每次备份都是新的。作业按照每周一次的频率在星期天凌晨1点执行。 接下来是差异备份。差异备份只记录...

Global site tag (gtag.js) - Google Analytics