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
),還是只執行一次 (0
)。 @continuous為 bit,預設值NULL
為 ,表示此參數沒有變更。
當 @continuous 為
1
時,sys.sp_cdc_scan作業會掃描記錄檔,並處理最多 (@maxtrans * @maxscans
) 筆交易。 然後,它會等候@pollinginterval中指定的秒數,再開始下一次記錄掃描。當 @continuous 為 時,作業會執行最多@maxscans記錄掃描,並在每次掃描期間處理最多@maxtrans筆交易,然後結束。
0
sp_cdc_scan
如果 @continuous 從
1
變更為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
的參數會被視為省略 參數。
指定對作業類型無效的參數會導致 語句失敗。
除非使用 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