sys.sp_cdc_change_job (Transact-SQL)

現在のデータベースに、変更データ キャプチャ機能のクリーンアップ ジョブまたはキャプチャ ジョブの構成を変更します。ジョブの現在の構成を表示するには、dbo.cdc_jobs テーブルを照会するか、sp_cdc_help_jobs を使用します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

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