Freigeben über


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 der sp_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 "0In1" geändert wird, wird @pollinginterval automatisch auf "0. Ein für @pollinginterval angegebener Wert, der 0 nicht ignoriert wird.

  • Wenn @continuous nicht angegeben oder explizit auf NULL und @pollinginterval explizit auf einen Wert festgelegt wird, der größer als 0ist, 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