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
    ジョブの 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_postsp_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