Partilhar via


sys.sp_cdc_change_job (Transact-SQL)

Aplica-se a:SQL Server

Modifica a configuração de um trabalho de alteração, captura de dados ou captura na base de dados atual. Para visualizar a configuração atual de um trabalho, consulte a tabela dbo.cdc_jobs ou use sys.sp_cdc_help_jobs.

Transact-SQL convenções de sintaxe

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

Arguments

[ @job_type = ] N'job_type'

Tipo de trabalho a modificar. @job_type é nvarchar(20) com um padrão de capture. As entradas válidas são capture e cleanup.

[ @maxtrans ] = max_trans

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

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

[ @maxscans ] = max_scans

Número máximo de ciclos de varrimento a executar para extrair todas as linhas do log. @maxscans é int, com um padrão de NULL, o que indica que não há alteração para este 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, o que indica que não há alteração para este parâmetro.

  • Quando @continuous é 1, o trabalho de sys.sp_cdc_scan analisa o log e processa até (@maxtrans * @maxscans) transações. Depois, espera o número de segundos especificado em @pollinginterval antes de iniciar a próxima varredura de log.

  • Quando @continuous é 0, o sp_cdc_scan trabalho executa até @maxscans análises ao log, processando até @maxtrans transações durante cada varredura, e depois sai.

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

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

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

[ @pollinginterval ] = polling_interval

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

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

[ @retention ] = retenção

O número de minutos que mudam de linha deve ser mantido nas tabelas de alterações. @retention é bigint, com um padrão de NULL, o 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 = ] 'limiar de eliminação'

Número máximo de entradas eliminadas que podem ser eliminadas usando uma única instrução na limpeza. @threshold é bigint, com um padrão de NULL, o que indica que não há alteração para este parâmetro. @threshold é válido apenas para trabalhos de limpeza.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Conjunto de resultados

Nenhum.

Observações

Se um parâmetro for omitido, o valor associado na tabela dbo.cdc_jobs não é atualizado. Um conjunto de parâmetros explicitamente em NULL é tratado como se o parâmetro estivesse omitido.

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

As alterações a um trabalho só entram em vigor quando o trabalho é interrompido usando sys.sp_cdc_stop_job e reiniciado usando sys.sp_cdc_start_job.

Permissions

Requer a pertença ao papel db_owner de base de dados fixa.

Examples

A. Muda uma tarefa de captura

O exemplo seguinte atualiza os parâmetros @job_type, @maxscans e @maxtrans de um trabalho de captura na AdventureWorks2025 base de dados. Os outros parâmetros válidos para um trabalho de captura, @continuous e @pollinginterval, são omitidos; Os 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. Muda um trabalho de limpeza

O exemplo seguinte atualiza um trabalho de limpeza na AdventureWorks2025 base de dados. Todos os parâmetros válidos para este tipo de tarefa, exceto @threshold, são especificados. O valor da @threshold não é modificado.

USE AdventureWorks2022;
GO

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