sys.sp_cdc_change_job (Transact-SQL)
Gilt für: SQL Server
Ändert die Konfiguration eines Cleanup- oder Aufzeichnungsauftrags für Change Data Capture in der aktuellen Datenbank. Um die aktuelle Konfiguration eines Auftrags anzuzeigen, fragen Sie die dbo.cdc_jobs Tabelle ab, oder verwenden Sie sys.sp_cdc_help_jobs.
Transact-SQL-Syntaxkonventionen
Syntax
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'
[ ; ]
Argumente
[ @job_type = ] N'job_type'
Der Typ des zu ändernden Auftrags. @job_type ist nvarchar(20) mit einem Standardwert von capture
. Gültige Eingaben sind capture
und cleanup
.
[ @maxtrans ] = max_trans
Maximale Anzahl der in jedem Scanzyklus zu verarbeitenden Transaktionen. @maxtrans ist int, mit einem Standardwert von NULL
, der keine Änderung für diesen Parameter angibt. Wenn dieser Wert angegeben ist, muss er eine positive ganze Zahl annehmen.
@max_trans gilt nur für Erfassungsaufträge.
[ @maxscans ] = max_scans
Maximale Anzahl der Scanzyklen, die ausgeführt werden sollen, um alle Zeilen aus dem Protokoll zu extrahieren. @maxscans ist int, mit einem Standardwert von NULL
, der keine Änderung für diesen Parameter angibt.
@max_scan gilt nur für Erfassungsaufträge.
[ @continuous ] = fortlaufend
Gibt an, ob der Aufnahmeauftrag kontinuierlich ausgeführt werden soll (1
) oder nur einmal (0
). @continuous ist bit, mit einem Standardwert von NULL
, der keine Änderung für diesen Parameter angibt.
Wenn @continuous ist
1
, überprüft der sys.sp_cdc_scan Auftrag das Protokoll und verarbeitet bis (@maxtrans * @maxscans
) Transaktionen. Anschließend wird die in @pollinginterval angegebene Anzahl von Sekunden gewartet, bevor die nächste Protokollüberprüfung beginnt.Wenn @continuous ist
0
, wird dersp_cdc_scan
Auftrag bis zu @maxscans Scans des Protokolls ausgeführt, bis zu @maxtrans Transaktionen während jeder Überprüfung verarbeitet und dann beendet.Wenn @continuous von "
0
In1
" geändert wird, wird @pollinginterval automatisch auf "0
. Ein für @pollinginterval angegebener Wert, der0
nicht ignoriert wird.Wenn @continuous nicht angegeben oder explizit auf
NULL
und @pollinginterval explizit auf einen Wert festgelegt wird, der größer als0
ist, wird @continuous automatisch auf .1
@continuous gilt nur für Erfassungsaufträge.
[ @pollinginterval ] = polling_interval
Anzahl Sekunden zwischen Protokollscanzyklen. @pollinginterval ist großint, mit einem Standardwert von NULL
, der keine Änderung für diesen Parameter angibt.
@pollinginterval ist nur für Erfassungsaufträge gültig, wenn @continuous auf "1
.
[ @retention ] = Aufbewahrung
Die Anzahl von Minuten, für die Änderungszeilen in Änderungstabellen beibehalten werden sollen. @retention ist großint, mit einem Standardwert von NULL
, der keine Änderung für diesen Parameter angibt. Der Maximalwert ist 52494800
(100 Jahre). Wenn dieser Wert angegeben ist, muss er eine positive ganze Zahl annehmen.
@retention gilt nur für Bereinigungsaufträge.
[ @threshold = ] 'Löschschwellenwert'
Maximale Anzahl von Löscheinträgen, die mithilfe einer einzelnen Anweisung zum Bereinigen gelöscht werden können. @threshold ist großint, mit einem Standardwert von NULL
, der keine Änderung für diesen Parameter angibt. @threshold gilt nur für Bereinigungsaufträge.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Resultset
Keine.
Hinweise
Wenn ein Parameter ausgelassen wird, wird der zugeordnete Wert in der dbo.cdc_jobs Tabelle nicht aktualisiert. Ein Expliziter NULL
Parametersatz wird behandelt, als ob der Parameter weggelassen wird.
Wenn Sie einen Parameter angeben, der für den Auftragstyp ungültig ist, schlägt die Anweisung fehl.
Änderungen an einem Auftrag werden erst wirksam, wenn der Auftrag beendet wird, indem sys.sp_cdc_stop_job verwendet und mithilfe von sys.sp_cdc_start_job neu gestartet wird.
Berechtigungen
Hierfür ist die Mitgliedschaft in der festen Datenbankrolle db_owner erforderlich.
Beispiele
A. Ändern eines Aufnahmeauftrags
Im folgenden Beispiel werden die Parameter @job_type, @maxscans und @maxtrans eines Aufnahmeauftrags in der AdventureWorks2022
Datenbank aktualisiert. Die anderen gültigen Parameter für einen Aufnahmeauftrag, @continuous und @pollinginterval, werden weggelassen. Ihre Werte werden nicht geändert.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'capture',
@maxscans = 1000,
@maxtrans = 15;
GO
B. Ändern eines Bereinigungsauftrags
Im folgenden Beispiel wird ein Cleanupauftrag in der AdventureWorks2022
-Datenbank aktualisiert. Alle gültigen Parameter für diesen Auftragstyp, mit Ausnahme von @threshold, werden angegeben. Der Wert von @threshold wird nicht geändert.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'cleanup',
@retention = 2880;
GO