sp_add_jobserver (Transact-SQL)

在指定的服务器中,以指定的作业为目标。

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

语法

sp_add_jobserver [ @job_id = ] job_id | [ @job_name = ] 'job_name'
     [ , [ @server_name = ] 'server' ] 

参数

  • [ @job_id = ] job_id
    作业的标识号。job_id 的数据类型为 uniqueidentifier,默认值为 NULL。

  • [ @job_name = ] 'job_name'
    作业的名称。job_name 的数据类型为 sysname,默认值为 NULL。

    注意注意

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

  • [ @server_name = ] 'server'
    该作业的目标服务器的名称。server 的数据类型为 nvarchar(30),默认值为 N'(LOCAL)'。server 可以是本地服务器 (LOCAL) ,也可以是现有目标服务器的名称。

返回代码值

0(成功)或 1(失败)

结果集

注释

@automatic_post 存在于 sp_add_jobserver 中,但没有列在参数中。保留 @automatic_post 用于内部使用。

SQL Server Management Studio 为管理作业提供了一种图形化的简便方法,建议使用此方法来创建和管理作业基础结构。

权限

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

  • SQLAgentUserRole

  • SQLAgentReaderRole

  • SQLAgentOperatorRole

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

只有 sysadmin 固定服务器角色的成员才能执行多服务器作业的 sp_add_jobserver

示例

A. 将作业指派给本地服务器

以下示例将要运行的作业 NightlyBackups 指派给本地服务器。

注意注意

本示例假定 NightlyBackups 作业已经存在。

USE msdb ;
GO

EXEC dbo.sp_add_jobserver
    @job_name = N'NightlyBackups' ;
GO

B. 将要运行的作业指派给不同的服务器

以下示例将多服务器作业 Weekly Sales Backups 指派给服务器 SEATTLE2。

注意注意

本示例假定 Weekly Sales Backups 作业已经存在,且 SEATTLE2 已注册为当前实例的目标服务器。

USE msdb ;
GO

EXEC dbo.sp_add_jobserver
    @job_name = N'Weekly Sales Backups',
    @server_name = N'SEATTLE2' ;
GO