sys.sp_cdc_change_job (Transact-SQL)

適用於:SQL Server

修改目前資料庫中異動數據擷取清除或擷取作業的組態。 若要檢視作業的目前組態,請查詢 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 ] = 連續

指出擷取作業是要持續執行 (1),還是只執行一次 (0)。 @continuous為 bit,預設值NULL為 ,表示此參數沒有變更。

  • 當 @continuous1sp_cdc_scan作業會掃描記錄檔,並處理最多 (@maxtrans * @maxscans) 筆交易。 然後,它會等候@pollinginterval中指定的秒數,再開始下一次記錄掃描。

  • 當 @continuous 為 時,作業會執行最多@maxscans記錄掃描,並在每次掃描期間處理最多@maxtrans筆交易,然後結束。0sp_cdc_scan

  • 如果 @continuous1 變更為 0@pollinginterval 會自動設定為 0。 為以外的0@pollinginterval指定的值會被忽略。

  • 如果 省略@continuous 或明確設定為 NULL,且 @pollinginterval 明確設定為大於 0的值, @continuous 會自動設定為 1

@continuous僅適用於擷取作業。

[ @pollinginterval ] = polling_interval

記錄掃描週期之間的秒數。 @pollinginterval為 bigint,預設值NULL為 ,表示此參數沒有變更。

當 @continuous 設定1為 時,@pollinginterval僅適用於擷取作業。

[ @retention ] = 保留期

變更數據列要保留在變更數據表中的分鐘數。 @retention為 bigint,預設值NULL為 ,表示此參數沒有變更。 最大值為 52494800 (100 年)。 如果指定,該值必須是正整數。

@retention僅適用於清除作業。

[ @threshold = ] 'delete threshold'

清除時可以使用單一語句刪除的最大刪除項目數目。 @threshold為 bigint,預設值NULL為 ,表示此參數沒有變更。 @threshold僅適用於清除作業。

傳回碼值

0 (成功) 或 1 (失敗)。

結果集

無。

備註

如果省略參數,則不會更新dbo.cdc_jobs數據表中的相關聯值。 明確設定為 NULL 的參數會被視為省略 參數。

指定對作業類型無效的參數會導致 語句失敗。

除非使用 sp_cdc_stop_job 停止作業,並使用 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