Compartilhar via


sys.sp_cdc_change_job (Transact-SQL)

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 sp_cdc_help_jobs.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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'

Argumentos

  • [ @job_type= ] 'job_type'
    Tipo de tarefa a modificar. 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 serem processadas em cada ciclo de exame. max_trans é int com um padrão de NULL que indica nenhuma alteração para esse parâmetro. Se especificado, o valor deve ser um inteiro positivo.

    max_trans é válido somente para trabalhos de captura.

  • [ @maxscans ] **=**max_scans
    Número máximo de ciclos de exame a serem executados para extrair todas as linhas do log. max_scans é int com um padrão de NULL que indica nenhuma alteração para este parâmetro.

    max_scan é válido somente para trabalhos de captura.

  • [ @continuous ] **=**continuous
    Indica se o trabalho de captura deve ser executado continuamente (1) ou apenas uma vez (0). continuousé bit com um padrão de NULL que indica nenhuma alteração para este parâmetro.

    Quando continuous = 1, o trabalho sp_cdc_scan examina o log e processa até (max_trans * max_scans) transações. Em seguida, aguarda o número de segundos especificado em polling_interval antes de começar a próxima verificação de log.

    Quando continuous = 0, o trabalho sp_cdc_scan executa até max_scans verificações do log, processando até max_trans transações durante cada verificação e, em seguida, sai.

    Se @continuous for alterado de 1 para 0, @pollinginterval será 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 definido explicitamente como um valor maior que 0, @continuous será definido automaticamente como 1.

    continuous é válido somente para trabalhos de captura.

  • [ @pollinginterval ] **=**polling_interval
    Número de segundos entre ciclos de exame de log. polling_interval é bigint com um padrão de NULL que indica nenhuma alteração para esse parâmetro.

    polling_interval é válido somente para trabalhos de captura quando continuous está definido como 1.

  • [ @retention ] **=**retention
    O número de minutos que as linhas de alteração precisam ser retidas nas tabelas de alteração. retention é bigint com um padrão de NULL que não indica nenhuma 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 somente para trabalhos de limpeza.

  • [ @threshold= ] 'delete threshold'
    Número máximo de entradas de exclusão que podem ser excluídas com o uso de uma única instrução durante a limpeza. delete threshold é bigint, com um padrão de NULL que não indica nenhuma alteração para este parâmetro. delete threshold é válido somente para trabalhos de limpeza.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Conjuntos de resultados

Nenhum

Comentários

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

Especificar um parâmetro que é inválido para o tipo de trabalho fará a instrução falhar.

As alterações em um trabalho não entram em vigor até que este seja interrompido por meio de sp_cdc_stop_job e reiniciado por meio de sp_cdc_start_job.

Permissões

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

Exemplos

A. Alterando um trabalho de captura

O exemplo a seguir atualiza os parâmetros @job_type, @maxscans e @maxtrans de um trabalho de captura no banco de dados AdventureWorks2008R2. 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 AdventureWorks2008R2;
GO
EXECUTE sys.sp_cdc_change_job 
    @job_type = N'capture',
    @maxscans = 1000,
    @maxtrans = 15;
GO

B. Alterando um trabalho de limpeza

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

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