sp_add_job (Transact-SQL)
適用対象: SQL ServerAzure SQL Managed Instance
SQL Server エージェント サービスによって実行される新しいジョブを作成します。
重要
現在、Azure SQL Managed Instance によって、すべてではありませんが、ほとんどの SQL Server エージェントの機能がサポートされています。 詳細については、Azure SQL Managed Instance と SQL Server の T-SQL の相違点に関するページを参照してください。
構文
sp_add_job
[ @job_name = ] N'job_name'
[ , [ @enabled = ] enabled ]
[ , [ @description = ] N'description' ]
[ , [ @start_step_id = ] step_id ]
[ , [ @category_name = ] 'category' ]
[ , [ @category_id = ] category_id ]
[ , [ @owner_login_name = ] 'login' ]
[ , [ @notify_level_eventlog = ] eventlog_level ]
[ , [ @notify_level_email = ] email_level ]
[ , [ @notify_level_netsend = ] netsend_level ]
[ , [ @notify_level_page = ] page_level ]
[ , [ @notify_email_operator_name = ] 'email_name' ]
[ , [ @notify_netsend_operator_name = ] 'netsend_name' ]
[ , [ @notify_page_operator_name = ] 'page_name' ]
[ , [ @delete_level = ] delete_level ]
[ , [ @job_id = ] job_id OUTPUT ]
[ ; ]
引数
@job_name
ジョブの名前。 名前は一意である必要があり、パーセント (%
) 文字を含めることはできません。 @job_nameは nvarchar(128) で、既定値はありません。 必須。
@enabled
追加されたジョブの状態を示します。 enabled は tinyint で、既定値は 1
(有効) です。 ジョブが有効ではなく、スケジュールに従って実行されない場合 0
は、手動で実行できます。
@description
ジョブの説明。 @descriptionは nvarchar(512) で、既定値は NULL
. @descriptionを省略した場合は使用N'No description available'
されます。
@start_step_id
ジョブで実行する最初のステップの ID 番号を指定します。 @start_step_idは int で、既定値は 1
.
@category_name
ジョブのカテゴリを指定します。 @category_nameは sysname で、既定値は NULL
.
@category_id
ジョブ カテゴリを指定するための、言語に依存しないメカニズムを指定します。 @category_idは int で、既定値は NULL
.
@owner_login_name
ジョブを所有するログインの名前。 @owner_login_nameは sysname で、既定値は現在のNULL
ログイン名として解釈されます。 @owner_login_nameの値を設定または変更できるのは、sysadmin 固定サーバー ロールのメンバーだけです。 sysadmin ロールのメンバーではないユーザーが@owner_login_nameの値を設定または変更した場合、このストアド プロシージャの実行は失敗し、エラーが返されます。
@notify_level_eventlog
対象となるジョブのエントリをいつ Microsoft Windows アプリケーション ログに記録するかを示す値を指定します。 @notify_level_eventlogは int であり、次のいずれかの値を指定できます。
Value | 説明 |
---|---|
0 |
Never (決してしない) |
1 |
成功した場合 |
2 (既定値) |
エラー時 |
3 |
常時 |
@notify_level_email
対象となるジョブの完了後、いつ電子メールを送信するかを示す値を指定します。 @notify_level_emailは int で、既定値は 0
"なし" を示します。 @notify_level_emailでは、@notify_level_eventlogと同じ値が使用されます。
@notify_level_netsend
対象となるジョブの完了後、いつネットワーク メッセージを送信するかを示す値を指定します。 @notify_level_netsendは int で、既定値は 0
"なし" を示します。 @notify_level_netsendでは 、@notify_level_eventlogと同じ値が 使用されます。
@notify_level_page
対象となるジョブの完了後、いつポケットベルのメッセージを送信するかを示す値を指定します。 @notify_level_pageは int で、既定値は 0
"なし" を示します。 @notify_level_pageは、@notify_level_eventlogと同じ値を使用します。
@notify_email_operator_name
@notify_email_operator_nameに達したときに電子メールを送信するユーザーの電子メール名。 @notify_email_operator_nameは sysname で、既定値は NULL
.
@notify_netsend_operator_name
このジョブの完了時にネットワーク メッセージが送信されるオペレーターの名前。 @notify_netsend_operator_nameは sysname で、既定値は NULL
.
@notify_page_operator_name
対象となるジョブの完了時にポケットベルのメッセージの送信先となる相手の名前を指定します。 @notify_page_operator_nameは sysname で、既定値は NULL
.
@delete_level
ジョブを削除するタイミングを示す値。 delete_valueは int で、既定値は0
決してないことを意味します。 @delete_levelでは、@notify_level_eventlogと同じ値が使用されます。
Note
@delete_levelの3
場合、ジョブに対して定義されているスケジュールに関係なく、ジョブは 1 回だけ実行されます。 また、ジョブが自分自身を削除した場合、そのジョブのすべての履歴も削除されます。
@job_id 出力
正常に作成された場合にジョブに割り当てられるジョブ識別番号。 @job_idは uniqueidentifier 型の出力変数で、既定値は NULL
.
リターン コードの値
0
(成功) または 1
(失敗)。
結果セット
ありません。
解説
@originating_serverは 、にsp_add_job
存在しますが、引数の下には表示されません。 @originating_serverは内部使用のために予約されています。
ジョブを追加するために実行された後 sp_add_job
、 sp_add_jobstep
ジョブのアクティビティを実行するステップを追加するために使用できます。 sp_add_jobschedule
を使用して、SQL Server エージェント サービスがジョブの実行に使用するスケジュールを作成できます。
ジョブが実行される SQL Server インスタンスを設定しsp_delete_jobserver
、SQL Server インスタンスからジョブを削除するために使用sp_add_jobserver
します。 ジョブがマルチサーバー環境の 1 つ以上のターゲット サーバーで実行される場合は、ジョブのターゲット サーバーまたはターゲット サーバー グループを設定するために使用 sp_apply_job_to_targets
します。 ターゲット サーバーまたはターゲット サーバー グループからジョブを削除するには、次を使用 sp_remove_job_from_targets
します。 マルチサーバー 管理istration (MSX/TSX) 機能は、Azure SQL Managed Instance ではサポートされていません。
SQL Server Management Studio は、簡単かつ直観的な方法でジョブを管理するためのツールで、ジョブ体系の作成および管理に最適です。
このストアド プロシージャは、Azure SQL Database の sp_add_job
Azure Elastic Jobs サービスの同様の オブジェクトと名前を共有します。 エラスティック ジョブのバージョンについては、「jobs.sp_add_job (Azure エラスティック ジョブ) (Transact-SQL)」を参照してください。
アクセス許可
このストアド プロシージャは、db_owner ロールによって所有されています。 任意のユーザーにアクセス許可を付与 EXECUTE
できますが、SQL Server のアップグレード中にこれらのアクセス許可がオーバーライドされる可能性があります。
他のユーザーには、データベース内の固定データベース ロールSQL Server エージェント次のいずれかを付与するmsdb
必要があります。
- SQLAgentUserRole
- SQLAgentReaderRole
- SQLAgentOperatorRole
これらのロールの権限の詳細については、「 SQL Server エージェントの固定データベース ロール」を参照してください。
@owner_login_nameの値を設定または変更できるのは、sysadmin 固定サーバー ロールのメンバーだけです。 sysadmin ロールのメンバーではないユーザーが@owner_login_nameの値を設定または変更した場合、このストアド プロシージャの実行は失敗し、エラーが返されます。
例
A. ジョブを追加する
この例では、という名前 NightlyBackups
の新しいジョブを追加します。
USE msdb;
GO
EXEC dbo.sp_add_job @job_name = N'NightlyBackups';
GO
B. ポケットベル、電子メール、およびネット送信情報を含むジョブを追加する
この例では、ジョブが失敗した場合に (ポケットベル、電子メール、またはネットワーク ポップアップ メッセージによって) 通知François Ajenstat
し、正常に完了したときにジョブを削除する名前Ad hoc Sales Data Backup
のジョブを作成します。
Note
この例では、名前付きの演算子と名前付きのFrançois Ajenstat
françoisa
ログインが既に存在することを前提としています。
USE msdb;
GO
EXEC dbo.sp_add_job
@job_name = N'Ad hoc Sales Data Backup',
@enabled = 1,
@description = N'Ad hoc backup of sales data',
@owner_login_name = N'françoisa',
@notify_level_eventlog = 2,
@notify_level_email = 2,
@notify_level_netsend = 2,
@notify_level_page = 2,
@notify_email_operator_name = N'François Ajenstat',
@notify_netsend_operator_name = N'François Ajenstat',
@notify_page_operator_name = N'François Ajenstat',
@delete_level = 1;
GO
関連するコンテンツ
- sp_add_schedule (Transact-SQL)
- sp_add_jobstep (Transact-SQL)
- sp_add_jobserver (Transact-SQL)
- sp_apply_job_to_targets (Transact-SQL)
- sp_delete_job (Transact-SQL)
- sp_delete_jobserver (Transact-SQL)
- sp_remove_job_from_targets (Transact-SQL)
- sp_help_job (Transact-SQL)
- sp_help_jobstep (Transact-SQL)
- sp_update_job (Transact-SQL)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示