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


sys.sp_cdc_change_job (Transact-SQL)

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

Значок ссылки на разделСинтаксические обозначения в 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 задания отслеживания в базе данных AdventureWorks2008R2. Другие допустимые параметры задания отслеживания (@continuous и @pollinginterval) пропущены; их значения не изменяются.

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

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

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

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