sp_update_job (Transact-SQL)

更改作业的属性。

主题链接图标Transact-SQL 语法约定

语法

sp_update_job [ @job_id =] job_id | [@job_name =] 'job_name'
     [, [@new_name =] 'new_name' ] 
     [, [@enabled =] enabled ]
     [, [@description =] 'description' ] 
     [, [@start_step_id =] step_id ]
     [, [@category_name =] 'category' ] 
     [, [@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_operator' ]
          [, [@notify_page_operator_name =] 'page_operator' ]
     [, [@delete_level =] delete_level ] 
     [, [@automatic_post =] automatic_post ]

参数

  • [ @job_id =] job_id
    要更新的作业标识号。job_id的数据类型为 uniqueidentifier。

  • [ @job_name =] 'job_name'
    作业的名称。job_name的数据类型为 nvarchar(128)。

    注意注意

    必须指定 job_id 或 job_name,但不能两个都指定。

  • [ @new_name =] 'new_name'
    作业的新名称。new_name的数据类型为 nvarchar(128)。

  • [ @enabled =] enabled
    指定已启用(1)还是未启用(0)作业。enabled的数据类型为 tinyint。

  • [ @description =] 'description'
    作业的说明。description 的数据类型为 nvarchar(512)。

  • [ @start_step_id =] step_id
    作业中要执行的第一个步骤的标识号。step_id的数据类型为 int。

  • [ @category_name =] 'category'
    作业的类别。category的数据类型为 nvarchar(128)。

  • [ @owner_login_name =] 'login'
    拥有作业的登录名。login的数据类型为 nvarchar(128)。只有 sysadmin 固定服务器角色的成员才能更改作业所有权。

  • [ @notify_level_eventlog =] eventlog_level
    指定何时将该作业的项放入 Microsoft Windows 应用程序日志。eventlog_level的数据类型为 int,可以是下列值之一:

    说明(操作)

    0

    从不

    1

    成功时

    2

    失败时

    3

    始终

  • [ @notify_level_email =] email_level
    指定在该作业完成后发送电子邮件的时间。email_level的数据类型为 int。email_level与 eventlog_level 使用相同的值。

  • [ @notify_level_netsend =] netsend_level
    指定在该作业完成后发送网络消息的时间。netsend_level的数据类型为 int。netsend_level与 eventlog_level 使用相同的值。

  • [ @notify_level_page =] page_level
    指定在该作业完成后发送页的时间。page_level的数据类型为 int。page_level与 eventlog_level 使用相同的值。

  • [ @notify_email_operator_name =] 'email_name'
    当达到 email_level 时要将电子邮件发送到的操作员的电子邮件名称。email_name 的数据类型为 nvarchar(128)。

  • [ @notify_netsend_operator_name =] 'netsend_operator'
    向其发送网络消息的操作员的名称。netsend_operator 的数据类型为 nvarchar(128)。

  • [ @notify_page_operator_name =] 'page_operator'
    向其发送页的操作员的名称。page_operator 的数据类型为 nvarchar(128)。

  • [ @delete_level =] delete_level
    指定删除作业的时间。delete_value的数据类型为 int。delete_level与 eventlog_level 使用相同的值。

  • [ @automatic_post =] automatic_post
    保留。

返回代码值

0(成功)或 1(失败)

注释

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

sp_update_job 只更改提供了参数值的设置。如果省略某一参数,则保留其当前设置。

权限

默认情况下,只有 sysadmin 固定服务器角色的成员才可以执行此存储过程。其他用户必须被授予 msdb 数据库中下列 SQL Server 代理固定数据库角色的权限之一:

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

有关这些角色的权限的详细信息,请参阅 SQL Server 代理固定数据库角色

只有 sysadmin 的成员才可以使用此存储过程编辑其他用户拥有的作业的属性。

示例

以下示例更改了作业 NightlyBackups 的名称、说明和启用状态。

USE msdb ;
GO

EXEC dbo.sp_update_job
    @job_name = N'NightlyBackups',
    @new_name = N'NightlyBackups -- Disabled',
    @description = N'Nightly backups disabled during server migration.',
    @enabled = 0 ;
GO