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.
Convenções da 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 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. max_trans é int com um padrão de NULL que não indica nenhuma alteração para este parâmetro. Se especificado, o valor deve ser um inteiro positivo.max_trans é válido somente 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. max_scans é int com um padrão de NULL que não 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 não 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
O número de segundos entre ciclos de exame de log. polling_interval é bigint com um padrão de NULL que não indica nenhuma alteração para este 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 devem ser retidas em 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'
O número máximo de entradas de exclusão que podem ser excluídas por meio de uma única instrução na 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 AdventureWorks2012. 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 AdventureWorks2012;
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 AdventureWorks2012. Todos os parâmetros válidos para esse tipo de trabalho, exceto @threshold, são especificados. O valor de @threshold não é modificado.
USE AdventureWorks2012;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'cleanup',
@retention = 2880;
GO