次の方法で共有


sp_update_job (Transact-SQL)

適用対象: SQL Server Azure SQL Managed Instance

SQL Server エージェント サービスで作成された既存のジョブの属性を更新します。

Transact-SQL 構文表記規則

構文

sp_update_job
    [ [ @job_id = ] 'job_id' ]
    [ , [ @job_name = ] N'job_name' ]
    [ , [ @new_name = ] N'new_name' ]
    [ , [ @enabled = ] enabled ]
    [ , [ @description = ] N'description' ]
    [ , [ @start_step_id = ] start_step_id ]
    [ , [ @category_name = ] N'category_name' ]
    [ , [ @owner_login_name = ] N'owner_login_name' ]
    [ , [ @notify_level_eventlog = ] notify_level_eventlog ]
    [ , [ @notify_level_email = ] notify_level_email ]
    [ , [ @notify_level_netsend = ] notify_level_netsend ]
    [ , [ @notify_level_page = ] notify_level_page ]
    [ , [ @notify_email_operator_name = ] N'notify_email_operator_name' ]
    [ , [ @notify_netsend_operator_name = ] N'notify_netsend_operator_name' ]
    [ , [ @notify_page_operator_name = ] N'notify_page_operator_name' ]
    [ , [ @delete_level = ] delete_level ]
    [ , [ @automatic_post = ] automatic_post ]
[ ; ]

引数

[ @job_id = ] 'job_id'

更新するジョブの識別番号を指定します。 @job_iduniqueidentifier で、既定値は NULL です。

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

[ @job_name = ] N'job_name'

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

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

[ @new_name = ] N'new_name'

ジョブの新しい名前。 @new_namesysname で、既定値は NULL です。

[ @enabled = ] enabled

ジョブを有効 (1) にするか、有効にしない (0) かを指定します。 @enabledtinyint で、既定値は NULL です。

[ @description = ] N'description'

ジョブの説明。 @descriptionnvarchar(512) で、既定値は NULL です。

[ @start_step_id = ] start_step_id

ジョブで実行する最初のステップの ID 番号を指定します。 @start_step_idint で、既定値は NULL です。

[ @category_name = ] N'category_name'

ジョブのカテゴリ。 @category_namesysname で、既定値は NULL です。

[ @owner_login_name = ] N'owner_login_name'

ジョブを所有するログインの名前。 @owner_login_namesysname で、既定値は NULL です。 ジョブの所有権を変更できるのは、 sysadmin 固定サーバー ロールのメンバーだけです。

[ @notify_level_eventlog = ] notify_level_eventlog

対象となるジョブのエントリをいつ Microsoft Windows アプリケーション ログに記録するかを指定します。 @notify_level_eventlogint で、次のいずれかの値を指定できます。

Value 説明 (アクション)
0 Never
1 成功時
2 エラー時
3 常時

[ @notify_level_email = ] notify_level_email

ジョブの完了時にメールが送信されるタイミングを指定します。 @notify_level_emailint で、既定値は NULL です。 @notify_level_email では、 @notify_level_eventlogと同じ値が使用されます。

[ @notify_level_netsend = ] notify_level_netsend

ジョブの完了時にネットワーク メッセージが送信されるタイミングを指定します。 @notify_level_netsendint で、既定値は NULL です。 @notify_level_netsend では、 @notify_level_eventlogと同じ値が使用されます。

[ @notify_level_page = ] notify_level_page

ジョブの完了時にポケットベルによる通知が送信されるタイミングを指定します。 @notify_level_pageint で、既定値は NULL です。 @notify_level_page は、 @notify_level_eventlogと同じ値を使用します。

[ @notify_email_operator_name = ] N'notify_email_operator_name'

email_levelに達したときに電子メールを送信するオペレーターの名前。 @notify_email_operator_namesysname で、既定値は NULL です。

[ @notify_netsend_operator_name = ] N'notify_netsend_operator_name'

ネットワーク メッセージの送信先のオペレーター名を指定します。 @notify_netsend_operator_namesysname で、既定値は NULL です。

[ @notify_page_operator_name = ] N'notify_page_operator_name'

ページの送信先となるオペレーターの名前。 @notify_page_operator_namesysname で、既定値は NULL です。

[ @delete_level = ] delete_level

ジョブが削除されるタイミングを指定します。 @delete_levelint で、既定値は NULL です。 @delete_level では、 @notify_level_eventlogと同じ値が使用されます。

[ @automatic_post = ] automatic_post

単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。

リターン コードの値

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

解説

sp_update_job は、 msdb データベースから実行する必要があります。

sp_update_job では、パラメーター値が指定されている設定のみが変更されます。 パラメーターを省略すると、現在の設定は保持されます。

このストアド プロシージャは、azure SQL Database 用の Azure Elastic Jobs サービスの同様のオブジェクトとsp_update_jobの名前を共有。 エラスティック ジョブのバージョンについては、「 jobs.sp_update_job (Azure エラスティック ジョブ)」を参照してください。

アクセス許可

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

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

  • SQLAgentUserRole
  • SQLAgentReaderRole
  • SQLAgentOperatorRole

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

このストアド プロシージャを使用して、他のユーザーが所有するジョブの属性を編集できるのは、 sysadmin のメンバーだけです。

次の例では、ジョブ NightlyBackupsの名前、説明、および有効な状態を変更します。

USE msdb;
GO

EXEC dbo.sp_update_job
    @job_name = N'NightlyBackups',
    @new_name = N'NightlyBackups -- Disabled',
    @description = N'Nightly backups disabled during server migration.',
    @enabled = 0;
GO