添加由 SQLServerAgent 服务执行的新作业語法和解析

添加由   SQLServerAgent   服务执行的新作业。
 
语法
    
sp_add_job   
                [   @job_name   =   ]    'job_name '
                [   ,   [   @enabled   =   ]   enabled   ]   
                [   ,   [   @description   =   ]    'description '   ]   
                [   ,   [   @start_step_id   =   ]   step_id   ]   
                [   ,   [   @category_name   =   ]    'category '   ]   
                [   ,   [   @category_id   =   ]   category_id   ]   
                [   ,   [   @owner_login_name   =   ]    'login '   ]   
                [   ,   [   @notify_level_eventlog   =   ]   eventlog_level   ]   
                [   ,   [   @notify_level_email   =   ]   email_level   ]   
                [   ,   [   @notify_level_netsend   =   ]   netsend_level   ]   
                [   ,   [   @notify_level_page   =   ]   page_level   ]   
                [   ,   [   @notify_email_operator_name   =   ]    'email_name '   ]   
                               [   ,   [   @notify_netsend_operator_name   =   ]    'netsend_name '   ]   
                               [   ,   [   @notify_page_operator_name   =   ]    'page_name '   ]   
                [   ,   [   @delete_level   =   ]   delete_level   ]   
                [   ,   [   @job_id   =   ]   job_id   OUTPUT   ]   
    
 
备注
@originating_server   存在于   sp_add_job   中,但不列在参数下。@originating_server   被保留供内部使用。
 
执行   sp_add_job   添加作业后,可使用   sp_add_jobstep   添加执行该作业活动的步骤。sp_add_jobschedule   可用于创建   SQL   Server   代理服务使用的作业执行计划。使用   sp_add_jobserver   设置执行作业所在的   SQL   Server   实例,使用   sp_delete_jobserver   从   SQL   Server   实例中删除作业。
 
如果对多服务器环境中的一个或多个目标服务器执行作业,则可使用   sp_apply_job_to_targets   设置作业的目标服务器或目标服务器组。若要从目标服务器或目标服务器组中删除作业,可使用   sp_remove_job_from_targets。
 
SQL   Server   Management   Studio   为管理作业提供了一种图形化的简便方法,建议使用此方法来创建和管理作业基础结构。
 
参数
[   @job_name   =   ]    'job_name '
作业的名称。该名称必须唯一,且不能含有百分比   (%)   字符。job_name   的数据类型为   sysname,无默认值。
 
[   @enabled   =   ]   enabled
指示添加的作业的状态。enabled   的数据类型为   tinyint,默认值为   1(启用)。如果为   0,则不启用作业,也不按作业计划运行作业。可以手动运行作业。   
 
[   @description   =   ]    'description '
作业的说明。description   的数据类型为   nvarchar(512),默认值为   NULL。如果省略   description,则使用“无说明”。
 
[   @start_step_id   =   ]   step_id
该作业要执行的第一步的标识号。step_id   的数据类型为   int,默认值为   1。
 
[   @category_name   =   ]    'category '
作业的类别。category   的数据类型为   sysname,默认值为   NULL。
 
[   @category_id   =   ]   category_id
一种与语言无关的机制,用于指定作业类别。category_id   的数据类型为   int,默认值为   NULL。
 
[   @owner_login_name   =   ]    'login '
拥有作业的登录名。login   的数据类型为   sysname,默认值为   NULL,可解释为当前登录名。只有   sysadmin   固定服务器角色的成员才可以设置或更改   @owner_login_name   的值。如果非   sysadmin   角色成员的用户设置或更改   @owner_login_name   的值,则无法执行此存储过程,并且会返回错误。
 
[   @notify_level_eventlog   =   ]   eventlog_level
一个值,用于指示何时将该作业的项放入   Microsoft   Windows   NT   应用程序日志。eventlog_level   的数据类型为   int,可以是下列值之一。
 
值      说明      
0
    从不
    
1
    成功后
    
2(默认值)
    失败后
    
3
    始终
    
 
[   @notify_level_email   =   ]   email_level
一个值,用于指示完成该作业后何时发送电子邮件。email_level   的数据类型为   int,默认值为   0,指示从不发送。email_level   和   eventlog_level   使用相同的值。
 
[   @notify_level_netsend   =   ]   netsend_level
一个值,用于指示完成该作业后何时发送网络消息。netsend_level   的数据类型为   int,默认值为   0,指示从不发送。netsend_level   和   eventlog_level   使用相同的值。
 
[   @notify_level_page   =   ]   page_level
一个值,用于指示完成该作业后何时发送寻呼。page_level   的数据类型为   int,默认值为   0,指示从不发送。page_level   和   eventlog_level   使用相同的值。
 
[   @notify_email_operator_name   =   ]    'email_name '
达到   email_level   时,电子邮件收件人的电子邮件名称。email_name   的数据类型为   sysname,默认值为   NULL。
 
[   @notify_netsend_operator_name   =   ]    'netsend_name '
完成该作业后,接收网络消息的操作员的名称。netsend_name   的数据类型为   sysname,默认值为   NULL。
 
[   @notify_page_operator_name   =   ]    'page_name '
完成该作业后,寻呼接收人的名称。page_name   的数据类型为   sysname,默认值为   NULL。
 
[   @delete_level   =   ]   delete_level
一个值,用于指示何时删除作业。delete_value   的数据类型为   int,默认值为   0,表示从不删除。delete_level   和   eventlog_level   使用相同的值。
 
注意:      
如果   delete_level   为   3,则该作业只执行一次,不再考虑为该作业定义的任何计划。而且,如果作业将自身删除,则将同时删除该作业的历史记录。
    
 
 
[   @job_id   =   ]   job_id   OUTPUT
成功创建了作业时,分配给作业的作业标识号。job_id   是   uniqueidentifier   类型的输出变量,默认值为   NULL。
 
返回代码值
0(成功)或   1(失败)
 
结果集

 
权限
若要运行此存储过程,用户必须是   sysadmin   固定服务器角色的成员,或者被授予下列   msdb   数据库中   SQL   Server   代理固定数据库角色:
 
SQLAgentUserRole
 
 
SQLAgentReaderRole
 
 
SQLAgentOperatorRole
 
 
有关与上述每个固定数据库角色关联的特定权限的信息,请参阅   SQL   Server   代理固定数据库角色。
 
只有   sysadmin   固定服务器角色的成员才可以设置或更改   @owner_login_name   的值。如果非   sysadmin   角色成员的用户设置或更改   @owner_login_name   的值,则无法执行此存储过程,并且会返回错误。
 
示例
A.   添加作业   
 
此示例将添加一个名为   NightlyBackups   的新作业。   
 
    复制代码   
USE   msdb   ;
GO
 
EXEC   dbo.sp_add_job
             @job_name   =   N 'NightlyBackups '   ;
GO
    
 
B.   添加一个具有寻呼、电子邮件和网络发送信息的作业
 
该示例将创建一个名为   Ad   hoc   Sales   Data   Backup   的作业。如果该作业失败,则会通知   François   Ajenstat(通过寻呼、电子邮件或网络弹出消息);如果作业成功,则删除该作业。   
 
注意:      
本例假定已经存在一个名为   François   Ajenstat   的操作员和名为   françoisa   的登录名。
    
 
    复制代码   
USE   msdb   ;
GO
 
EXEC   dbo.sp_add_job
             @job_name   =   N 'Ad   hoc   Sales   Data   Backup ',   
             @enabled   =   1,
             @description   =   N 'Ad   hoc   backup   of   sales   data ',
             @owner_login_name   =   N 'françoisa ',
             @notify_level_eventlog   =   2,
             @notify_level_email   =   2,
             @notify_level_netsend   =   2,
             @notify_level_page   =   2,
             @notify_email_operator_name   =   N 'François   Ajenstat ',
             @notify_netsend_operator_name   =   N 'François   Ajenstat ',   
             @notify_page_operator_name   =   N 'François   Ajenstat ',
             @delete_level   =   1   ;
GO
    
 
请参阅
参考
sp_add_jobschedule   (Transact-SQL)
sp_add_jobstep   (Transact-SQL)
sp_add_jobserver   (Transact-SQL)
sp_apply_job_to_targets   (Transact-SQL)
sp_delete_job   (Transact-SQL)
sp_delete_jobserver   (Transact-SQL)
sp_remove_job_from_targets   (Transact-SQL)
sp_help_job   (Transact-SQL)
sp_help_jobstep   (Transact-SQL)
sp_update_job   (Transact-SQL)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值