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
, osp_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
para0
, @pollinginterval é automaticamente definido como0
. Um valor especificado para @pollinginterval diferente de0
é ignorado.Se @continuous for omitido ou explicitamente definido como
NULL
e @pollinginterval for explicitamente definido como um valor maior que0
, @continuous será automaticamente definido como1
.
@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