次の方法で共有


sp_add_jobserver (Transact-SQL)

適用対象: SQL サーバー

指定したサーバーで指定したジョブを対象とします。

Transact-SQL 構文表記規則

構文

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

引数

[ @job_id = ] job_id

ジョブの識別番号。 job_iduniqueidentifier で、既定値は NULL です。

@job_idまたは@job_nameを指定する必要がありますが、両方を指定することはできません。

[ @job_name = ] 'job_name'

ジョブの名前。 job_namesysname で、既定値は NULL です。

@job_idまたは@job_nameを指定する必要がありますが、両方を指定することはできません。

[ @server_name = ] N'server'

対象となるジョブを割り当てるサーバーの名前を指定します。 @server_namenvarchar(30) で、既定値は (LOCAL) です。 @server_name は、ローカル サーバーに対して (LOCAL) することも、既存のターゲット サーバーの名前にすることもできます。

リターン コードの値

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

結果セット

ありません。

解説

@automatic_postsp_add_jobserverに存在しますが、引数の下には表示されません。 @automatic_post は内部使用のために予約されています。

SQL Server Management Studio は、簡単かつ直観的な方法でジョブを管理するためのツールで、ジョブ体系の作成および管理に最適です。

アクセス許可

このストアド プロシージャは、 db_owner ロールによって所有されています。 EXECUTEアクセス許可は任意のユーザーに付与できますが、SQL Server のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。

他のユーザーには、msdb データベース内の次SQL Server エージェント固定データベース ロールのいずれかを付与する必要があります。

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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

sysadmin固定サーバー ロールのメンバーのみが、複数のサーバーを含むジョブに対してsp_add_jobserverを実行できます。

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

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

Note

この例では、 NightlyBackups ジョブが既に存在することを前提としています。

USE msdb;
GO

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

B. 別のサーバーで実行するジョブを割り当てる

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

Note

この例では、Weekly Sales Backups ジョブが既に存在し、SEATTLE2 が現在のインスタンスに対するターゲット サーバーとして登録されていることを前提としています。

USE msdb;
GO

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