Поделиться через


sys.sp_cdc_change_job (Transact-SQL)

Изменяет конфигурацию задания очистки системы отслеживания измененных данных или задания записи в текущей базе данных. Чтобы просмотреть текущие настройки задания, необходимо выполнить запрос к таблице dbo.cdc_jobs либо использовать процедуру sp_cdc_help_jobs.

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

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'

Аргументы

  • [ @job_type= ] 'job_type'
    Тип задания для изменения. Аргумент job_type имеет тип nvarchar(20) и значение по умолчанию «capture». Допустимы следующие варианты ввода: «capture» и «cleanup».

  • [ @maxtrans ] **=**max_trans
    Максимальное количество транзакций, обрабатываемое в каждом цикле просмотра. Параметр max_trans имеет тип int и значение по умолчанию NULL; это означает, что параметр не меняется. Указываемое значение должно быть положительным целым числом.

    Аргумент max_trans допустим только для заданий отслеживания.

  • [ @maxscans ] **=**max_scans
    Максимальное количество циклов просмотра, выполняемых для извлечения всех строк из журнала. Параметр max_scans имеет тип int и значение по умолчанию NULL; это означает, что параметр не меняется.

    Аргумент max_scan допустим только для заданий отслеживания.

  • [ @continuous ] **=**continuous
    Указывает, должно ли задание отслеживания выполняться постоянно (1) или только один раз (0). Параметр continuous имеет тип bit и значение по умолчанию NULL; это означает, что параметр не меняется.

    Если continuous = 1, то задание sp_cdc_scan просматривает журнал и обрабатывает до (max_trans * max_scans) транзакций. Перед началом следующего просмотра журнала задание ожидает в течение времени, указанного аргументом polling_interval (в секундах).

    Если аргумент continuous = 0, то задание sp_cdc_scan выполняет до max_scans просмотров журнала, обрабатывая до max_trans транзакций за один просмотр, затем завершает выполнение.

    Если @continuous изменено с 1 на 0, то @pollinginterval автоматически устанавливается в положение 0. Значение, указанное для @pollinginterval и отличное от 0, будет пропущено.

    Если параметр @continuous не указан или ему явно присвоено значение NULL, а параметру @pollinginterval явно присвоено значение, большее 0, то параметру @continuous автоматически присваивается значение 1.

    Аргумент continuous допустим только для заданий отслеживания.

  • [ @pollinginterval ] **=**polling_interval
    Число секунд между циклами просмотра журнала. Параметр polling_interval имеет тип bigint и значение по умолчанию NULL; это означает, что параметр не меняется.

    Аргумент polling_interval допустим только для заданий отслеживания, когда аргумент continuous имеет значение 1.

  • [ @retention ] **=**retention
    Число минут, в течение которого строки изменений должны храниться в таблицах изменений. Параметр retention имеет тип bigint и значение по умолчанию NULL; это означает, что параметр не меняется. Максимальное значение составляет 52494800 (100 лет). Указываемое значение должно быть положительным целым числом.

    Аргумент retention допустим только для заданий очистки.

  • [ @threshold= ] 'delete threshold'
    Максимальное число записей, подлежащих удалению, которые могут быть удалены одной инструкцией при очистке. Параметр delete threshold имеет тип bigint и значение по умолчанию NULL; это означает, что параметр не меняется. Аргумент delete threshold допустим только для заданий очистки.

Значения кода возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Результирующие наборы

Нет

Замечания

Если параметр пропущен, то связанное с ним значение в таблице dbo.cdc_jobs не обновляется. Явное присвоение параметру значения NULL эквивалентно его пропусканию.

Указание недопустимого для типа задания параметра приведет к ошибке при выполнении инструкции.

Изменения в задании вступают в силу только после его остановки с помощью процедуры sp_cdc_stop_job и повторного запуска с помощью процедуры sp_cdc_start_job.

Разрешения

Требуется членства в предопределенной роли базы данных db_owner.

Примеры

А.Изменение задания отслеживания

В следующем примере обновляется значение параметров @job\_type, @maxscans и @maxtrans задания отслеживания в базе данных AdventureWorks2012. Другие допустимые параметры задания отслеживания (@continuous и @pollinginterval) пропущены; их значения не изменяются.

USE AdventureWorks2012;
GO
EXECUTE sys.sp_cdc_change_job 
    @job_type = N'capture',
    @maxscans = 1000,
    @maxtrans = 15;
GO

Б.Изменение задания очистки

В следующем примере обновляется задание очистки базы данных AdventureWorks2012. Указаны все допустимые для данного типа задания параметры, кроме @threshold. Значение параметра @threshold не изменяется.

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

См. также

Справочник

dbo.cdc_jobs (Transact-SQL)

sys.sp_cdc_enable_table (Transact-SQL)

sys.sp_cdc_add_job (Transact-SQL)