次の方法で共有


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 です。

    ms178625.note(ja-jp,SQL.90).gifメモ :
    job_id または job_name のいずれかを指定する必要があります。両方を指定することはできません。
  • [ @server_name = ] 'server'
    対象となるジョブを割り当てるサーバーの名前を指定します。server のデータ型は nvarchar(30) で、既定値は N'(LOCAL)' です。server には、ローカル サーバーを表す (LOCAL) または既存の対象サーバーの名前のいずれかを指定できます。

結果セット

なし

解説

@automatic_postsp_add_jobserver に含まれていますが、「引数」の項には記載されていません。@automatic_post は、内部で使用するために予約されています。

SQL Server Management Studio は、ジョブを簡単に管理できるグラフィカルなツールです。ジョブのインフラストラクチャを作成し、管理するには、このツールを使用することをお勧めします。

権限

既定では、このストアド プロシージャを実行できるのは、sysadmin 固定サーバー ロールのメンバです。他のユーザーには、msdb データベースの次のいずれかの SQL Server エージェント固定データベース ロールが許可されている必要があります。

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

これらのロールの権限の詳細については、「SQL Server エージェントの固定データベース ロール」を参照してください。

複数のサーバーに関連するジョブに対して sp_add_jobserver を実行できるのは、sysadmin 固定サーバー ロールのメンバだけです。

戻り値

0 (成功) または 1 (失敗)

A. ローカル サーバーにジョブを割り当てる

次の例では、NightlyBackups ジョブをローカル サーバーで実行するよう割り当てます。

ms178625.note(ja-jp,SQL.90).gifメモ :
この例では NightlyBackups ジョブが既に存在することを前提としています。
USE msdb ;
GO

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

B. 異なるサーバーで実行するようジョブを割り当てる

次の例では、マルチサーバー ジョブ Weekly Sales BackupsSEATTLE2 サーバーに割り当てます。

ms178625.note(ja-jp,SQL.90).gifメモ :
この例では、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)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手