sp_add_jobserver (Transact-SQL)
指定されたジョブを、特定のサーバーにおける対象ジョブにします。
構文
sp_add_jobserver [ @job_id = ] job_id | [ @job_name = ] 'job_name'
[ , [ @server_name = ] 'server' ]
引数
[ @job_id = ] job_id
ジョブの 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 エージェントの固定データベース ロール」を参照してください。
複数のサーバーに関連するジョブに対して sp_add_jobserver を実行できるのは、sysadmin 固定サーバー ロールのメンバだけです。
例
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