sys.sp_cdc_change_job (Transact-SQL)
適用対象: SQL Server
現在のデータベースの変更データ キャプチャのクリーンアップジョブまたはキャプチャ ジョブの構成を変更します。 ジョブの現在の構成を表示するには、 dbo.cdc_jobs テーブルに対してクエリを実行するか、 sys.sp_cdc_help_jobsを使用します。
構文
sys.sp_cdc_change_job [ [ @job_type = ] N'job_type' ]
[ , [ @maxtrans = ] max_trans ]
[ , [ @maxscans = ] max_scans ]
[ , [ @continuous = ] continuous ]
[ , [ @pollinginterval = ] polling_interval ]
[ , [ @retention ] = retention ]
[ @threshold = ] 'delete threshold'
[ ; ]
引数
[ @job_type = ] N'job_type'
変更するジョブの種類。 @job_type は nvarchar(20) で、既定値は capture
です。 有効な入力は capture
と cleanup
です。
[ @maxtrans ] = max_trans
各スキャン サイクルで処理するトランザクションの最大数。 @maxtrans は int で、既定値は NULL
で、このパラメーターに変更がないことを示します。 指定する場合、値は正の整数である必要があります。
@max_trans は、キャプチャ ジョブに対してのみ有効です。
[ @maxscans ] = max_scans
ログからすべての行を抽出するために実行する最大スキャン サイクル数を指定します。 @maxscans は int で、既定値は NULL
で、このパラメーターに変更がないことを示します。
@max_scan は、キャプチャ ジョブに対してのみ有効です。
[ @continuous ] = 連続
キャプチャ ジョブを継続的に実行するか (1
)、1 回だけ実行するか (0
) を示します。 @continuous は bit で、既定値は NULL
で、このパラメーターに変更がないことを示します。
@continuousが
1
されると、sys.sp_cdc_scan ジョブはログをスキャンし、最大 (@maxtrans * @maxscans
) トランザクションを処理します。 次に、次のログ スキャンを開始する前に、 @pollinginterval で指定された秒数を待機します。@continuousが
0
されると、sp_cdc_scan
ジョブはログの最大@maxscansスキャンを実行し、各スキャン中に最大@maxtransトランザクションを処理してから終了します。@continuousが
1
から0
に変更された場合、@pollingintervalは自動的に0
に設定されます。0
以外の@pollingintervalに指定された値は無視されます。@continuousを省略するか、明示的に
NULL
に設定し、@pollingintervalが0
より大きい値に明示的に設定されている場合、@continuousは自動的に1
に設定されます。
@continuous は、キャプチャ ジョブに対してのみ有効です。
[ @pollinginterval ] = polling_interval
ログ スキャン サイクル間の秒数。 @pollinginterval は bigint で、既定値は NULL
で、このパラメーターに変更がないことを示します。
@pollinginterval は、 @continuous が 1
に設定されている場合にのみ、キャプチャ ジョブに対して有効です。
[ @retention ] = retention
変更行を変更する分数は、変更テーブルに保持されます。 @retention は bigint で、既定値は NULL
で、このパラメーターに変更がないことを示します。 最大値は 52494800
(100 年) です。 指定する場合、値は正の整数である必要があります。
@retention はクリーンアップ ジョブに対してのみ有効です。
[ @threshold = ] '削除のしきい値'
クリーンアップ時に 1 つのステートメントを使用して削除できる削除エントリの最大数。 @threshold は bigint で、既定値は NULL
で、このパラメーターに変更がないことを示します。 @threshold はクリーンアップ ジョブに対してのみ有効です。
リターン コードの値
0
(成功) または 1
(失敗)。
結果セット
ありません。
解説
パラメーターを省略すると、 dbo.cdc_jobs テーブル内の関連付けられた値は更新されません。 NULL
に明示的に設定されたパラメーターは、パラメーターを省略した場合と同様に扱われます。
ジョブの種類に無効なパラメーターを指定すると、ステートメントは失敗します。
ジョブに対する変更は、 sys.sp_cdc_stop_job を使用してジョブが停止され、 sys.sp_cdc_start_jobを使用して再起動されるまで有効になりません。
アクセス許可
db_owner 固定データベース ロール内でメンバーシップが必要です。
例
A. キャプチャ ジョブを変更する
次の例では、AdventureWorks2022
データベース内のキャプチャ ジョブの@job_type、@maxscans、および@maxtransパラメーターを更新します。 キャプチャ ジョブの他の有効なパラメーター ( @continuous と @pollinginterval) は省略されます。それらの値は変更されません。
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'capture',
@maxscans = 1000,
@maxtrans = 15;
GO
B. クリーンアップ ジョブを変更する
次の例では、 AdventureWorks2022
データベースのクリーンアップ ジョブを更新します。 @thresholdを除く、このジョブ・タイプのすべての有効なパラメーターが指定されます。 @thresholdの値は変更されません。
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'cleanup',
@retention = 2880;
GO