Compartilhar via


sys.sp_cdc_change_job (Transact-SQL)

Aplica-se: SQL Server

Modifica a configuração de um trabalho de captura ou limpeza do Change Data Capture no banco de dados atual. Para exibir a configuração atual de um trabalho, consulte a tabela dbo.cdc_jobs ou use sys.sp_cdc_help_jobs.

Convenções de sintaxe de Transact-SQL

Sintaxe

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 trabalho a ser modificado. @job_type é nvarchar(20) com um padrão de capture. As entradas válidas são capture e cleanup.

@maxtrans [] = max_trans

O número máximo de transações a processar em cada ciclo de exame. @maxtrans é int, com um padrão de NULL, que indica que não há alteração para esse parâmetro. Se especificado, o valor deve ser um inteiro positivo.

@max_trans é válido apenas para trabalhos de captura.

@maxscans [] = max_scans

O número máximo de ciclos de exame a executar para extrair todas as linhas do log. @maxscans é int, com um padrão de NULL, que indica que não há alteração para esse parâmetro.

@max_scan é válido apenas para trabalhos de captura.

@continuous [] = contínuo

Indica se o trabalho de captura deve ser executado continuamente (1) ou executado apenas uma vez (0). @continuous é bit, com um padrão de NULL, que indica que não há alteração para esse parâmetro.

  • Quando @continuous é 1, o trabalho sys.sp_cdc_scan verifica o log e processa até (@maxtrans * @maxscans) transações. Em seguida, ele aguarda o número de segundos especificado no @pollinginterval antes de iniciar a próxima verificação de log.

  • Quando @continuous é 0, o sp_cdc_scan trabalho executa até @maxscans varreduras do log, processando até @maxtrans transações durante cada varredura e, em seguida, sai.

  • Se @continuous for alterado de 1 para 0, @pollinginterval é automaticamente definido como 0. Um valor especificado para @pollinginterval diferente de 0 é ignorado.

  • Se @continuous for omitido ou explicitamente definido como NULL e @pollinginterval for explicitamente definido como um valor maior que 0, @continuous será automaticamente definido como 1.

@continuous é válido apenas para trabalhos de captura.

@pollinginterval [] = polling_interval

Número de segundos entre os ciclos de verificação de log. @pollinginterval é bigint, com um padrão de NULL, que indica que não há alteração para este parâmetro.

@pollinginterval é válido apenas para trabalhos de captura quando @continuous é definido como 1.

@retention [] = retenção

O número de minutos que as linhas de alteração devem ser retidas em tabelas de alteração. @retention é bigint, com um padrão de NULL, que indica que não há alteração para este parâmetro. O valor máximo é 52494800 (100 anos). Se especificado, o valor deve ser um inteiro positivo.

@retention é válido apenas para trabalhos de limpeza.

@threshold [ = ] 'limite de exclusão'

O número máximo de entradas de exclusão que podem ser excluídas por meio de uma única instrução na limpeza. @threshold é bigint, com um padrão de NULL, que indica que não há alteração para esse parâmetro. @threshold é válido apenas para trabalhos de limpeza.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Conjunto de resultados

Nenhum.

Comentários

Se um parâmetro for omitido, o valor associado na tabela dbo.cdc_jobs não será atualizado. Um parâmetro definido explicitamente como NULL é tratado como se o parâmetro fosse omitido.

Especificar um parâmetro inválido para o tipo de trabalho faz com que a instrução falhe.

As alterações em um trabalho não entram em vigor até que o trabalho seja interrompido usando sys.sp_cdc_stop_job e reiniciado usando sys.sp_cdc_start_job.

Permissões

Requer associação na função de banco de dados fixa db_owner.

Exemplos

R. Alterar um trabalho de captura

O exemplo a seguir atualiza os parâmetros @job_type, @maxscans e @maxtrans de um trabalho de captura no AdventureWorks2022 banco de dados. Os outros parâmetros válidos para um trabalho de captura, @continuous e @pollinginterval, são omitidos; seus valores não são modificados.

USE AdventureWorks2022;
GO

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

B. Alterar um trabalho de limpeza

O exemplo a seguir atualiza um trabalho de limpeza no banco de dados AdventureWorks2022. Todos os parâmetros válidos para esse tipo de trabalho, exceto @threshold, são especificados. O valor de @threshold não é modificado.

USE AdventureWorks2022;
GO

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