sp_update_job (Transact-SQL)

適用対象: SQL ServerAzure 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_idは uniqueidentifier で、既定値は NULL.

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

[ @job_name = ] N'job_name'

ジョブの名前。 @job_nameは sysname で、既定値は NULL.

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

[ @new_name = ] N'new_name'

ジョブの新しい名前。 @new_nameは sysname で、既定値は NULL.

[ @enabled = ] が有効

ジョブが有効 () か有効でない0 (1) かを指定します。 @enabledは tinyint で、既定値は NULL.

[ @description = ] N'description'

ジョブの説明。 @descriptionは nvarchar(512) で、既定値は NULL.

[ @start_step_id = ] start_step_id

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

[ @category_name = ] N'category_name'

ジョブのカテゴリ。 @category_nameは sysname で、既定値は NULL.

[ @owner_login_name = ] N'owner_login_name'

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

[ @notify_level_eventlog = ] notify_level_eventlog

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

Value 説明 (アクション)
0 なし
1 成功した場合
2 エラー時
3 常時

[ @notify_level_email = ] notify_level_email

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

[ @notify_level_netsend = ] notify_level_netsend

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

[ @notify_level_page = ] notify_level_page

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

[ @notify_email_operator_name = ] N'notify_email_operator_name'

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

[ @notify_netsend_operator_name = ] N'notify_netsend_operator_name'

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

[ @notify_page_operator_name = ] N'notify_page_operator_name'

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

[ @delete_level = ] delete_level

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

[ @automatic_post = ] automatic_post

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

リターン コードの値

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

解説

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

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

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

アクセス許可

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

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

  • 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