jobs.sp_update_jobstep (Azure エラスティック ジョブ) (Transact-SQL)
適用対象:Azure SQL Database
Azure SQL Database の Azure エラスティック ジョブ サービスの既存の ジョブのジョブ ステップを変更します。 ジョブステップをジョブに追加するには、jobs.sp_add_jobstepを使用します。
このストアド プロシージャは、SQL Server エージェント サービスの sp_update_jobstep
SQL Server の同様のオブジェクトと名前を共有します。 SQL Server エージェントバージョンの詳細については、「sp_update_jobstep (Transact-SQL)」を参照してください。
構文
[jobs].sp_update_jobstep [ @job_name = ] 'job_name'
[ , [ @step_id = ] step_id ]
[ , [ @step_name = ] 'step_name' ]
[ , [ @new_id = ] new_id ]
[ , [ @new_name = ] 'new_name' ]
[ , [ @command_type = ] 'command_type' ]
[ , [ @command_source = ] 'command_source' ]
, [ @command = ] 'command'
[, [ @credential_name = ] 'credential_name' ]
, [ @target_group_name = ] 'target_group_name'
[ , [ @initial_retry_interval_seconds = ] initial_retry_interval_seconds ]
[ , [ @maximum_retry_interval_seconds = ] maximum_retry_interval_seconds ]
[ , [ @retry_interval_backoff_multiplier = ]retry_interval_backoff_multiplier ]
[ , [ @retry_attempts = ] retry_attempts ]
[ , [ @step_timeout_seconds = ] step_timeout_seconds ]
[ , [ @output_type = ] 'output_type' ]
[ , [ @output_credential_name = ] 'output_credential_name' ]
[ , [ @output_server_name = ] 'output_server_name' ]
[ , [ @output_database_name = ] 'output_database_name' ]
[ , [ @output_schema_name = ] 'output_schema_name' ]
[ , [ @output_table_name = ] 'output_table_name' ]
[ , [ @job_version = ] job_version OUTPUT ]
[ , [ @max_parallelism = ] max_parallelism ]
引数
@job_name
ステップが属するジョブの名前を指定します。 job_nameは nvarchar(128) です。
@step_id
変更するジョブ ステップの ID 番号。 step_idまたはstep_nameを指定する必要があります。 step_idは int です。
@step_name
変更するステップの名前。 step_idまたはstep_nameを指定する必要があります。 step_nameは nvarchar(128) です。
@new_id
ジョブ ステップの新しいシーケンス ID 番号。 ステップ ID 番号は 1 から始まり、隙間なく増加します。 ステップの順序を変更する場合、他のステップの番号は自動的に変更されます。
@new_name
ステップの新しい名前。 new_nameは nvarchar(128) です。
@command_type
このジョブ ステップによって実行されるコマンドの種類。 command_typeは nvarchar(50) で、既定値は TSql
@command_type パラメーターの値が T-SQL スクリプトであることを意味します。
指定する場合、値 TSql
は .
@command_source
コマンドが格納される場所の種類。 command_sourceは nvarchar(50) で、既定値は Inline
@command パラメーターの値がコマンドのリテラル テキストであることを意味します。
指定する場合、値 Inline
は .
@command
このジョブ ステップで実行される有効な T-SQL スクリプト。 コマンド は nvarchar(max) で、既定値は NULL
.
@credential_name
このステップの実行時にターゲット グループ内の各ターゲット データベースに接続するために使用される、このジョブ 制御データベースに格納されているデータベース スコープの資格情報の名前。 credential_nameは nvarchar(128) です。
Microsoft Entra 認証 (旧称 Azure Active Directory) を使用する場合は、@credential_name パラメーターを省略します。これは、データベース スコープの資格情報を使用する場合にのみ指定する必要があります。
@target_group_name
ジョブ ステップが実行されるターゲット データベースを含むターゲット グループの名前。 target_group_nameは nvarchar(128) です。
@initial_retry_interval_seconds
ジョブ ステップの最初の実行の試行が失敗した場合に、最初の再試行を試みるまでの遅延。 initial_retry_interval_secondsは int で、既定値は 1 です。
@maximum_retry_interval_seconds
再試行の間の最大遅延。 再試行の間の遅延がこの値より大きくなった場合は、この値に制限されます。 maximum_retry_interval_secondsは int で、既定値は 120 です。
@retry_interval_backoff_multiplier
ジョブ ステップの実行が複数回にわたり失敗した場合に、再試行の遅延に適用する乗数。 たとえば、最初の再試行の遅延が 5 秒で、バックオフ乗数が 2.0 の場合、2 回目の再試行の遅延は 10 秒、3 回目の再試行の遅延は 20 秒になります。 retry_interval_backoff_multiplierは実際のデータ型で、既定値は 2.0 です。
@retry_attempts
最初の試行が失敗した場合に、実行を再試行する回数。 たとえば、retry_attempts値が 10 の場合、最初の試行は 1 回、再試行回数は 10 回になり、合計で 11 回の試行が行われます。 最後の再試行が失敗した場合、ジョブの実行は jobs.job_executions に記録された状態Failed
で終了lifecycle
します。 retry_attemptsは int で、既定値は 10 です。
@step_timeout_seconds
ステップの実行に許可されている最大時間。 この時間を超えた場合、ジョブの実行は jobs.job_executions に記録された状態TimedOut
で終了lifecycle
します。 step_timeout_secondsは int で、既定値は 43,200 秒 (12 時間) です。
@output_type
そうでないNULL
場合は、コマンドの最初の結果セットの書き込み先の型。 output_typeの値をリセットするにはNULL
、このパラメーターの値を '' (空の文字列) に設定します。 output_typeは nvarchar(50) で、既定値は NULL
.
指定する場合、値 SqlDatabase
は .
@output_credential_name
そうでない NULL
場合は、出力先データベースへの接続に使用されるデータベース スコープの資格情報の名前。 output_typeが等しい場合 は 、指定する SqlDatabase
必要があります。 output_credential_nameの値を NULL にリセットするには、このパラメーターの値を '' (空の文字列) に設定します。 output_credential_nameは nvarchar(128) で、既定値は NULL
.
Microsoft Entra 認証 (旧称 Azure Active Directory) を使用する場合は、@output_credential_name パラメーターを省略します。これは、データベース スコープの資格情報を使用する場合にのみ指定する必要があります。
@output_server_name
そうでない NULL
場合は、出力先データベースを含むサーバーの完全修飾 DNS 名 (例 @output_server_name = 'server1.database.windows.net'
: . output_typeが等しい場合 は 、指定する SqlDatabase
必要があります。 output_server_nameの値をリセットするには NULL
、このパラメーターの値を '' (空の文字列) に設定します。 output_server_nameは nvarchar(256) で、既定値は NULL
.
@output_database_name
そうでない NULL
場合は、出力先テーブルを含むデータベースの名前。 output_typeが等しい場合 は 、指定する SqlDatabase
必要があります。 output_database_nameの値をNULL
リセットするには、このパラメーターの値を '' (空の文字列) に設定します。 output_database_nameは nvarchar(128) で、既定値は NULL
.
@output_schema_name
そうでない NULL
場合は、出力先テーブルを含む SQL スキーマの名前。 output_typeが等しいSqlDatabase
場合、既定値は dbo
. output_schema_nameの値をNULL
リセットするには、このパラメーターの値を '' (空の文字列) に設定します。 output_schema_nameは nvarchar(128) です。
@output_table_name
そうでないNULL
場合は、コマンドの最初の結果セットの書き込み先となるテーブルの名前。 テーブルがまだ存在しない場合は、返される結果セットのスキーマに基づいて作成されます。 output_typeが等しい場合 は 、指定する SqlDatabase
必要があります。 output_server_nameの値をリセットするにはNULL
、このパラメーターの値を '' (空の文字列) に設定します。 output_table_nameは nvarchar(128) で、既定値は NULL
.
output_table_nameを指定する場合は、ジョブ エージェント UMI またはデータベース スコープの資格情報に、テーブルへの CREATE TABLE および IN Standard Edition RT データに対する必要なアクセス許可を付与する必要があります。
@job_version 出力
新しいジョブのバージョン番号が割り当てられる出力パラメーター。 job_versionは int です。
@max_parallelism 出力
エラスティック プールあたりの並列処理の最大レベル。 設定した場合、ジョブ ステップはエラスティック プールあたり最大でもその指定数のデータベースでのみ実行するように制限されます。 これは、ターゲット グループに直接含まれる各エラスティック プール、またはターゲット グループに含まれるサーバー内に存在するエラスティック プールに適用されます。 max_parallelismの値をリセットするにはNULL
、このパラメーターの値を に設定します-1
。 max_parallelismは int です。
リターン コードの値
0 (成功) または 1 (失敗)
解説
ジョブの進行中の実行には影響しません。 成功すると jobs.sp_update_jobstep
、ジョブのバージョン番号がインクリメントされます。 次にジョブを実行するときは、新しいバージョンが使われます。
アクセス許可
既定では、このストアド プロシージャを実行できるのは、 sysadmin 固定サーバー ロールのメンバーです。 このストアド プロシージャを使って、他のユーザーが所有するジョブの属性を編集できるのは、sysadmin のメンバーだけです。
例
エラスティック ジョブ ステップの更新コマンド
このサンプルでは、既存のエラスティック ジョブ ステップの T-SQL コマンドを更新します。 T-SQL スクリプトは、テーブルが存在しない場合に作成するジョブ ステップを追加します。
--Connect to the job database specified when creating the elastic job agent
-- Add job step to create a table if it does not exist
EXEC jobs.sp_update_jobstep @job_name = 'CreateTableTest',
@command = N'IF NOT EXISTS (SELECT * FROM sys.tables WHERE object_id = object_id(''Test''))
CREATE TABLE [dbo].[Test]([TestId] [int] NOT NULL);',
@target_group_name = 'PoolGroup';
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示