sys.sp_cdc_change_job (Transact-SQL)

適用対象:SQL Server

現在のデータベースの変更データ キャプチャ クリーンup ジョブまたはキャプチャ ジョブの構成を変更します。 ジョブの現在の構成を表示するには、dbo.cdc_jobs テーブルに対してクエリを実行するか、sp_cdc_help_jobsを使用します。

Transact-SQL 構文表記規則

構文

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. 有効な入力は capturecleanup です。

[ @maxtrans ] = max_trans

各スキャン サイクルで処理するトランザクションの最大数。 @maxtransは int で、既定値は NULL、このパラメーターの変更がないことを示します。 指定する場合、値は正の整数である必要があります。

@max_transは、キャプチャ ジョブに対してのみ有効です。

[ @maxscans ] = max_scans

ログからすべての行を抽出するために実行する最大スキャン サイクル数を指定します。 @maxscansは int で、既定値は NULL、このパラメーターの変更がないことを示します。

@max_scanは、キャプチャ ジョブに対してのみ有効です。

[ @continuous ] = 連続

キャプチャ ジョブを継続的に実行するか (11 回0だけ) 実行するかを示します。 @continuousはビットで、既定値は NULL、このパラメーターの変更がないことを示します。

  • @continuousの場合sp_cdc_scan ジョブは1ログをスキャンし、最大 (@maxtrans * @maxscans) トランザクションを処理します。 次に、次のログ スキャンを開始する前に、@pollinginterval指定された秒数を待機します。

  • @continuousの場合sp_cdc_scanジョブは0ログのスキャンを最大@maxscans実行し、各スキャン中に最大@maxtransトランザクションを処理してから終了します。

  • @continuousが変更01された場合@pollingintervalは自動的に0に設定されます。 以外の@pollinginterval0指定された値は無視されます。

  • @continuousを省略するか、明示的に NULL に設定し、@pollingintervalが明示的により0大きい値に設定されている場合@continuousは自動的に に1設定されます。

@continuousは、キャプチャ ジョブに対してのみ有効です。

[ @pollinginterval ] = polling_interval

ログ スキャン サイクル間の秒数。 @pollingintervalは bigint で、既定値は NULL、このパラメーターに変更がないことを示します。

@pollingintervalは、@continuousが に設定されている場合にのみ、キャプチャ ジョブに対して1有効です。

[ @retention ] = 保持

変更行を変更する分数は、変更テーブルに保持されます。 @retentionは bigint で、既定値は NULL、このパラメーターの変更がないことを示します。 最大値は 52494800 (100 年) です。 指定する場合、値は正の整数である必要があります。

@retentionは、クリーンup ジョブに対してのみ有効です。

[ @threshold = ] 'delete threshold'

クリーンup で 1 つのステートメントを使用して削除できる削除エントリの最大数。 @thresholdは bigint で、既定値は NULL、このパラメーターの変更がないことを示します。 @thresholdは、クリーンup ジョブに対してのみ有効です。

リターン コードの値

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

結果セット

ありません。

解説

パラメーターを省略すると、dbo.cdc_jobs テーブル内の関連付けられた値は更新されません。 明示的に NULL に設定されたパラメーターは、パラメーターが省略されているかのように扱われます。

ジョブの種類に無効なパラメーターを指定すると、ステートメントは失敗します。

ジョブに対する変更は、sp_cdc_stop_jobを使用してジョブが停止され、sp_cdc_start_jobを使用して再起動されるまで有効になりません。

アクセス許可

db_owner 固定データベース ロール内でメンバーシップが必要です。

A. キャプチャ ジョブを変更する

次の例では、データベース内の キャプチャ ジョブの@job_type@maxscans、および @maxtrans パラメーターを AdventureWorks2022 更新します。 キャプチャ ジョブ の他の有効なパラメーター (@continuous@pollinginterval) は省略されます。それらの値は変更されません。

USE AdventureWorks2022;
GO

EXECUTE sys.sp_cdc_change_job
    @job_type = N'capture',
    @maxscans = 1000,
    @maxtrans = 15;
GO

B. クリーンup ジョブを変更する

次の例では、データベース内の クリーンup ジョブをAdventureWorks2022更新します。 @thresholdを除く、このジョブ・タイプのすべての有効なパラメーターが指定されます。 @threshold値は変更されません。

USE AdventureWorks2022;
GO

EXECUTE sys.sp_cdc_change_job
    @job_type = N'cleanup',
    @retention = 2880;
GO