sp_add_jobserver (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
请参阅
参考
sp_apply_job_to_targets (Transact-SQL)
sp_delete_jobserver (Transact-SQL)
系统存储过程 (Transact-SQL)