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),還是僅執行一次 (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'
可以使用單一清除陳述式來刪除的最大刪除項目數。delete threshold 是 bigint,預設值為 NULL,代表此參數沒有異動。delete threshold 只對清除作業有效。
傳回碼值
0 (成功) 或 1 (失敗)
結果集
無
備註
如果省略某個參數,就不會更新 dbo.cdc_jobs 資料表中的關聯值。明確設定為 NULL 的參數會被視為省略的參數。
指定對作業類型無效的參數將導致此陳述式失敗。
對某項作業所做的變更要等到您使用 sp_cdc_stop_job 停止該作業並使用 sp_cdc_start_job 重新啟動作業時,變更才會生效。
權限
需要 db_owner 固定資料庫角色中的成員資格。
範例
A. 變更擷取作業
下列範例會更新 AdventureWorks2008R2 資料庫中擷取作業的 @job_type、@maxscans 和 @maxtrans 參數。擷取作業其他有效的參數 (@continuous 和 @pollinginterval) 被省略,而且其值不會進行修改。
USE AdventureWorks2008R2;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'capture',
@maxscans = 1000,
@maxtrans = 15;
GO
B. 變更清除作業
下列範例會在 AdventureWorks2008R2 資料庫中更新清除作業。系統會指定這個作業類型的所有有效參數 (除了 @threshold 之外)。@threshold 的值不會修改。
USE AdventureWorks2008R2;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'cleanup',
@retention = 2880;
GO