Share via


sys.sp_cdc_change_job (Transact-SQL)

Modifica la configurazione di un processo di pulizia dell'acquisizione dei dati delle modifiche o di un processo di acquisizione nel database corrente. Per visualizzare la configurazione corrente di un processo, eseguire una query sulla tabella dbo.cdc_jobs o utilizzare sp_cdc_help_jobs.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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'

Argomenti

  • [ [ @job_type= ] 'job_type'
    Tipo di processo da modificare. job_type è di tipo nvarchar(20) e il valore predefinito è 'capture'. Gli input validi sono 'capture' e 'cleanup'.

  • [ [ @maxtrans ] **=**max_trans
    Numero massimo di transazioni da elaborare in ogni ciclo di scansione. max_trans è di tipo int e il valore predefinito è NULL, che indica nessuna modifica per questo parametro. Se specificato, il valore deve essere un numero intero positivo.

    max_trans è valido solo per i processi di acquisizione.

  • [ @maxscans ] **=**max_scans
    Numero massimo di cicli di scansione da eseguire per estrarre tutte le righe dal log. max_scans è di tipo int e il valore predefinito è NULL, che indica nessuna modifica per questo parametro.

    max_scan è valido solo per i processi di acquisizione.

  • [ [ @continuous ] **=**continuous
    Indica se il processo di acquisizione deve essere eseguito in modo continuo (1) o solo una volta (0). continuous è di tipo bit e il valore predefinito è NULL, che indica nessuna modifica per questo parametro.

    Quando continuous = 1, il processo sp_cdc_scan analizza il log ed elabora fino a (max_trans * max_scans) transazioni. Attende quindi il numero di secondi specificato in polling_interval prima di iniziare la successiva scansione del log.

    Quando continuous = 0, il processo sp_cdc_scan esegue fino a max_scans scansioni del log, elaborando fino a max_trans transazioni durante ogni scansione, quindi si arresta.

    Se @continuous viene modificato da 1 a 0, @pollinginterval viene impostato automaticamente su 0. Un valore specificato per @pollinginterval diverso da 0 viene ignorato.

    Se @continuous è omesso o impostato esplicitamente su NULL e @pollinginterval è impostato esplicitamente su un valore maggiore di 0, @continuous viene impostato automaticamente su 1.

    continuous è valido solo per i processi di acquisizione.

  • [ [ @pollinginterval ] **=**polling_interval
    Numero di secondi tra i cicli di scansione del log. polling_interval è di tipo bigint e il valore predefinito è NULL, che indica nessuna modifica per questo parametro.

    polling_interval è valido solo per i processi di acquisizione quando continuous è impostato su 1.

  • [ [ @retention ] **=**retention
    Numero di minuti per i quali le righe delle modifiche devono essere conservate nelle tabelle delle modifiche. retention è di tipo bigint e il valore predefinito è NULL, che indica nessuna modifica per questo parametro. Il valore massimo è 52494800 (100 anni). Se specificato, il valore deve essere un numero intero positivo.

    retention è valido solo per i processi di pulizia.

  • [ @threshold= ] 'delete threshold'
    Numero massimo di voci che possono essere eliminate utilizzando un'unica istruzione nel processo di pulizia. delete threshold è di tipo bigint e il valore predefinito è NULL, che indica nessuna modifica per questo parametro. delete threshold è valido solo per i processi di pulizia.

Valori dei codici restituiti

0 (esito positivo) o 1 (esito negativo)

Set di risultati

Nessuno

Osservazioni

Se un parametro viene omesso, il valore associato nella tabella dbo.cdc_jobs non viene aggiornato. Un parametro impostato esplicitamente su NULL viene considerato come se fosse stato omesso.

Se si specifica un parametro non valido per il tipo di processo, l'istruzione avrà esito negativo.

Le modifiche a un processo non diventano effettive fino a quando il processo non viene interrotto utilizzando sp_cdc_stop_job e riavviato tramite sp_cdc_start_job.

Autorizzazioni

È richiesta l'appartenenza al ruolo predefinito del database db_owner.

Esempi

A. Modifica di un processo di acquisizione

Nell'esempio seguente vengono aggiornati i parametri @job\_type, @maxscans e @maxtrans di un processo di acquisizione nel database AdventureWorks. Gli altri parametri validi per un processo di acquisizione, @continuous e @pollinginterval, sono omessi e i relativi valori non vengono modificati.

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

B. Modifica di un processo di pulizia

Nell'esempio seguente viene aggiornato un processo di pulizia nel database AdventureWorks. Vengono specificati tutti i parametri validi per questo tipo di processo, eccetto @threshold. Il valore di @threshold non viene modificato.

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