Compartir vía


sys.sp_cdc_change_job (Transact-SQL)

Se aplica a: SQL Server

Modifica la configuración de un trabajo de captura o de limpieza de captura de datos de cambio en la base de datos actual. Para ver la configuración actual de un trabajo, consulte la tabla dbo.cdc_jobs o use sys.sp_cdc_help_jobs.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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'
[ ; ]

Argumentos

[ @job_type = ] N'job_type'

Tipo de trabajo para modificar. @job_type es nvarchar(20) con un valor predeterminado de capture. Las entradas válidas son capture y cleanup.

[ @maxtrans ] = max_trans

Número máximo de transacciones para procesar en cada ciclo de recorrido. @maxtrans es int, con un valor predeterminado de NULL, que indica ningún cambio para este parámetro. Si se especifica, el valor debe ser un entero positivo.

@max_trans solo es válido para los trabajos de captura.

[ @maxscans ] = max_scans

Número máximo de ciclos de recorrido que se ejecutarán para extraer todas las filas del registro. @maxscans es int, con un valor predeterminado de NULL, que indica ningún cambio para este parámetro.

@max_scan solo es válido para los trabajos de captura.

[ @continuous ] = continuous

Indica si el trabajo de captura se va a ejecutar continuamente (1) o ejecutarse solo una vez (0). @continuous es bit, con un valor predeterminado de NULL, que indica ningún cambio para este parámetro.

  • Cuando @continuous es 1, el trabajo de sys.sp_cdc_scan examina el registro y procesa hasta (@maxtrans * @maxscans) transacciones. A continuación, espera el número de segundos especificados en @pollinginterval antes de comenzar el siguiente examen de registro.

  • Cuando @continuous es 0, el sp_cdc_scan trabajo se ejecuta hasta @maxscans exámenes del registro, procesando hasta @maxtrans transacciones durante cada examen y, a continuación, se cierra.

  • Si @continuous cambia de 1 a 0, @pollinginterval se establece 0automáticamente en . Se omite un valor especificado para @pollinginterval distinto 0 de .

  • Si @continuous se omite o se establece NULL explícitamente en y @pollinginterval se establece explícitamente en un valor mayor que 0, @continuous se establece 1automáticamente en .

@continuous solo es válido para los trabajos de captura.

[ @pollinginterval ] = polling_interval

Número de segundos entre los ciclos de recorrido del registro. @pollinginterval es bigint, con un valor predeterminado de NULL, que indica ningún cambio para este parámetro.

@pollinginterval solo es válido para los trabajos de captura cuando @continuous está establecido 1en .

[ @retention ] = retención

Número de minutos durante los que las filas de cambio deben retenerse en las tablas de cambio. @retention es bigint, con un valor predeterminado de NULL, que indica ningún cambio para este parámetro. El valor máximo es 52494800 (100 años). Si se especifica, el valor debe ser un entero positivo.

@retention solo es válido para trabajos de limpieza.

[ @threshold = ] 'eliminar umbral'

Número máximo de entradas de eliminación que se pueden eliminar mediante el uso de una única instrucción en el proceso de limpieza. @threshold es bigint, con un valor predeterminado de NULL, que indica ningún cambio para este parámetro. @threshold solo es válido para trabajos de limpieza.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Conjunto de resultados

Ninguno.

Comentarios

Si se omite un parámetro, el valor asociado de la tabla dbo.cdc_jobs no se actualiza. Un parámetro establecido explícitamente NULL en se trata como si se omite el parámetro.

Especificar un parámetro que no es válido para el tipo de trabajo hace que se produzca un error en la instrucción.

Los cambios en un trabajo no surten efecto hasta que el trabajo se detenga mediante sys.sp_cdc_stop_job y se reinicie mediante sys.sp_cdc_start_job.

Permisos

Requiere pertenencia al rol fijo de base de datos db_owner.

Ejemplos

A Cambio de un trabajo de captura

En el ejemplo siguiente se actualizan los parámetros @job_type, @maxscans y @maxtrans de un trabajo de captura en la AdventureWorks2022 base de datos. Los demás parámetros válidos para un trabajo de captura, @continuous y @pollinginterval, se omiten; sus valores no se modifican.

USE AdventureWorks2022;
GO

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

B. Cambio de un trabajo de limpieza

En el siguiente ejemplo se actualiza un trabajo de limpieza en la base de datos AdventureWorks2022. Se especifican todos los parámetros válidos para este tipo de trabajo, excepto @threshold. El valor de @threshold no se modifica.

USE AdventureWorks2022;
GO

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