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