sys.sp_cdc_change_job (Transact-SQL)
Область применения: SQL Server
Изменяет конфигурацию задания очистки системы отслеживания измененных данных или задания записи в текущей базе данных. Чтобы просмотреть текущую конфигурацию задания, запросите таблицу dbo.cdc_jobs или используйте sys.sp_cdc_help_jobs.
Соглашения о синтаксисе Transact-SQL
Синтаксис
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'
[ ; ]
Аргументы
[ @job_type = ] N'job_type'
Тип задания для изменения. @job_type — nvarchar(20) с значением по умолчаниюcapture
. Допустимые входные данные и capture
cleanup
.
[ @maxtrans ] = max_trans
Максимальное количество транзакций, обрабатываемое в каждом цикле просмотра. @maxtrans имеет значение int с значением по умолчаниюNULL
, которое указывает на отсутствие изменений для этого параметра. Указываемое значение должно быть положительным целым числом.
@max_trans допустимо только для заданий записи.
[ @maxscans ] = max_scans
Максимальное количество циклов просмотра, выполняемых для извлечения всех строк из журнала. @maxscans имеет значение int с значением по умолчаниюNULL
, которое указывает на отсутствие изменений для этого параметра.
@max_scan допустимо только для заданий записи.
[ @continuous ] = непрерывный
Указывает, выполняется ли задание записи непрерывно (1
) или выполняется только один раз (0
). @continuous бит с значением по умолчаниюNULL
, которое указывает на отсутствие изменений для этого параметра.
При @continuous задание sys.sp_cdc_scan
1
сканирует журнал и обрабатывает до (@maxtrans * @maxscans
) транзакций. Затем он ожидает количество секунд, указанных в @pollinginterval , прежде чем начать следующую проверку журнала.При @continuous
sp_cdc_scan
0
задание выполняет до @maxscans сканирования журнала, обработки до @maxtrans транзакций во время каждой проверки, а затем завершает работу.Если @continuous изменяется с
0
1
, @pollinginterval автоматически устанавливается0
. Значение, указанное для @pollinginterval , отличное от0
игнорируемого.Если @continuous опущен или явно задано
NULL
значение и @pollinginterval явно задано значение,0
превышающее значение, @continuous автоматически задается1
.
@continuous допустимо только для заданий записи.
[ @pollinginterval ] = polling_interval
Число секунд между циклами просмотра журнала. @pollinginterval является bigint с значением по умолчаниюNULL
, которое указывает на отсутствие изменений для этого параметра.
@pollinginterval допустимо только для заданий записи, если задано 1
значение @continuous.
[ @retention ] = хранение
Число минут, в течение которого строки изменений должны храниться в таблицах изменений. @retention является bigint с значением по умолчаниюNULL
, которое указывает на отсутствие изменений для этого параметра. Максимальное значение — 52494800
100 лет. Указываемое значение должно быть положительным целым числом.
@retention допустимо только для заданий очистки.
[ @threshold = ] 'delete порог'
Максимальное число записей, подлежащих удалению, которые могут быть удалены одной инструкцией при очистке. @threshold является bigint, с значением по умолчаниюNULL
, которое указывает на отсутствие изменений для этого параметра. @threshold допустимо только для заданий очистки.
Значения кода возврата
0
(успешно) или 1
(сбой).
Результирующий набор
Нет.
Замечания
Если параметр опущен, связанное значение в таблице dbo.cdc_jobs не обновляется. Параметр, NULL
заданный явным образом, обрабатывается так, как будто параметр опущен.
Указание недопустимого параметра для типа задания приводит к сбою инструкции.
Изменения в задании не вступают в силу, пока задание не будет остановлено с помощью sys.sp_cdc_stop_job и перезапуска с помощью sys.sp_cdc_start_job.
Разрешения
Требуется членство в предопределенной роли базы данных db_owner.
Примеры
А. Изменение задания записи
В следующем примере обновляются параметры @job_type, @maxscans и @maxtrans задания записи в AdventureWorks2022
базе данных. Другие допустимые параметры для задания записи, @continuous и @pollinginterval, опущены; их значения не изменяются.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'capture',
@maxscans = 1000,
@maxtrans = 15;
GO
B. Изменение задания очистки
В следующем примере обновляется задание очистки базы данных AdventureWorks2022
. Указаны все допустимые параметры этого типа задания, кроме @threshold. Значение @threshold не изменяется.
USE AdventureWorks2022;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'cleanup',
@retention = 2880;
GO