sys.sp_cdc_change_job (Transact-SQL)

Ändert die Konfiguration eines Cleanup- oder Aufzeichnungsauftrags für Change Data Capture in der aktuellen Datenbank. Zum Anzeigen der aktuellen Konfiguration eines Auftrags fragen Sie die dbo.cdc_jobs-Tabelle ab, oder verwenden Sie sp_cdc_help_jobs.

Themenlink (Symbol)Transact-SQL-Syntaxkonventionen

Syntax

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'

Argumente

  • [ @job_type= ] 'job_type'
    Typ des zu ändernden Auftrags. job_type ist vom Datentyp nvarchar(20) mit dem Standardtyp 'capture'. Gültige Eingaben sind 'capture' und 'cleanup'.

  • [ @maxtrans ] **=**max_trans
    Die maximale Anzahl der in jedem Scanzyklus zu verarbeitenden Transaktionen. max_trans ist vom Datentyp int und besitzt den Standardwert NULL, der angibt, dass für diesen Parameter keine Änderung vorliegt. Wenn dieser Wert angegeben ist, muss er eine positive ganze Zahl annehmen.

    max_trans ist nur für Aufzeichnungsaufträge gültig.

  • [ @maxscans ] **=**max_scans
    Die maximale Anzahl der Scanzyklen, die ausgeführt werden müssen, um alle Zeilen aus dem Protokoll zu extrahieren. max_scans ist vom Datentyp int und besitzt den Standardwert NULL, der angibt, dass für diesen Parameter keine Änderung vorliegt.

    max_scan ist nur für Aufzeichnungsaufträge gültig.

  • [ @continuous ] **=**continuous
    Gibt an, ob der Aufzeichnungsauftrag fortlaufend (1) oder nur einmalig (0) ausgeführt werden soll. continuous ist vom Datentyp bit und besitzt den Standardwert NULL, der angibt, dass für diesen Parameter keine Änderung vorliegt.

    Wenn continuous = 1, scannt der sp_cdc_scan-Auftrag das Protokoll und verarbeitet bis zu (max_trans * max_scans) Transaktionen. Er wartet dann vor dem Starten des nächsten Protokollscans die Anzahl der Sekunden ab, die in polling_interval angegeben ist.

    Wenn continuous = 0, führt der sp_cdc_scan-Auftrag bis zu max_scans Scanvorgänge des Protokolls aus, verarbeitet dabei bis zu max_trans Transaktionen während jedes Scanvorgangs und wird dann beendet.

    Wenn @continuous von 1 in 0 geändert wird, wird @pollinginterval automatisch auf 0 festgelegt. Für @pollinginterval angegebene Werte, die ungleich 0 sind, werden ignoriert.

    Wird @continuous weggelassen oder ausdrücklich auf NULL festgelegt, und wird @pollinginterval ausdrücklich auf einen Wert größer 0 festgelegt, so wird @continuous automatisch auf 1 festgelegt.

    continuous ist nur für Aufzeichnungsaufträge gültig.

  • [ @pollinginterval ] **=**polling_interval
    Die Anzahl der Sekunden zwischen den Protokollscanzyklen. polling_interval ist vom Datentyp bigint und besitzt den Standardwert NULL, der angibt, dass für diesen Parameter keine Änderung vorliegt.

    polling_interval ist nur für Aufzeichnungsaufträge gültig, wenn continuous auf 1 festgelegt ist.

  • [ @retention ] **=**retention
    Die Anzahl der Minuten, die Änderungszeilen in Änderungstabellen beibehalten werden. retention ist vom Datentyp bigint und besitzt den Standardwert NULL, der angibt, dass für diesen Parameter keine Änderung vorliegt. Der Maximalwert beträgt 52494800 (100 Jahre). Wenn dieser Wert angegeben ist, muss er eine positive ganze Zahl annehmen.

    retention ist nur für Cleanupaufträge gültig.

  • [ @threshold= ] 'delete threshold'
    Die maximale Anzahl von Einträgen für Löschvorgänge, die mit einer einzelnen Anweisung beim Cleanup gelöscht werden können. delete threshold ist vom Datentyp bigint und besitzt den Standardwert NULL, der angibt, dass für diesen Parameter keine Änderung vorliegt. delete threshold ist nur für Cleanupaufträge gültig.

Rückgabecodewerte

0 (Erfolg) oder 1 (Fehler)

Resultsets

Keine

Hinweise

Wird ein Parameter weggelassen, wird der zugeordnete Wert in der dbo.cdc_jobs-Tabelle nicht aktualisiert. Ein explizit auf NULL festgelegter Parameter wird so behandelt, als ob der Parameter weggelassen wird.

Die Angabe eines für den Auftragstyp ungültigen Parameters führt dazu, dass die Anweisung fehlschlägt.

Änderungen an einem Auftrag werden erst dann wirksam, wenn der Auftrag über sp_cdc_stop_job beendet und über sp_cdc_start_job erneut gestartet wurde.

Berechtigungen

Erfordert die Mitgliedschaft in der festen Datenbankrolle db_owner.

Beispiele

A. Ändern eines Aufzeichnungsauftrags

Im folgenden Beispiel werden die Parameter @job\_type, @maxscans und @maxtrans eines Aufzeichnungsauftrags in der AdventureWorks-Datenbank aktualisiert. Die anderen gültigen Parameter für einen Aufzeichnungsauftrag, @continuous und @pollinginterval, werden weggelassen. Deren Werte werden nicht geändert.

USE AdventureWorks;
GO
EXECUTE sys.sp_cdc_change_job 
    @job_type = N'capture',
    @maxscans = 1000,
    @maxtrans = 15;
GO

B. Ändern eines Cleanupauftrags

Im folgenden Beispiel wird ein Cleanupauftrag in der AdventureWorks-Datenbank aktualisiert. Es werden alle gültigen Parameter für diesen Auftragstyp, außer @threshold, angegeben. Der Wert von @threshold wird nicht geändert.

USE AdventureWorks;
GO
EXECUTE sys.sp_cdc_change_job 
    @job_type = N'cleanup',
    @retention = 2880;
GO