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


sp_changesubstatus (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Изменяет состояние существующего подписчика. Эта хранимая процедура выполняется на издателе в базе данных публикации.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_changesubstatus
    [ [ @publication = ] N'publication' ]
    [ , [ @article = ] N'article' ]
    [ , [ @subscriber = ] N'subscriber' ]
    , [ @status = ] N'status'
    [ , [ @previous_status = ] N'previous_status' ]
    [ , [ @destination_db = ] N'destination_db' ]
    [ , [ @frequency_type = ] frequency_type ]
    [ , [ @frequency_interval = ] frequency_interval ]
    [ , [ @frequency_relative_interval = ] frequency_relative_interval ]
    [ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
    [ , [ @frequency_subday = ] frequency_subday ]
    [ , [ @frequency_subday_interval = ] frequency_subday_interval ]
    [ , [ @active_start_time_of_day = ] active_start_time_of_day ]
    [ , [ @active_end_time_of_day = ] active_end_time_of_day ]
    [ , [ @active_start_date = ] active_start_date ]
    [ , [ @active_end_date = ] active_end_date ]
    [ , [ @optional_command_line = ] N'optional_command_line' ]
    [ , [ @distribution_jobid = ] distribution_jobid OUTPUT ]
    [ , [ @from_auto_sync = ] from_auto_sync ]
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @offloadagent = ] offloadagent ]
    [ , [ @offloadserver = ] N'offloadserver' ]
    [ , [ @dts_package_name = ] N'dts_package_name' ]
    [ , [ @dts_package_password = ] N'dts_package_password' ]
    [ , [ @dts_package_location = ] dts_package_location ]
    [ , [ @skipobjectactivation = ] skipobjectactivation ]
    [ , [ @distribution_job_name = ] N'distribution_job_name' ]
    [ , [ @publisher = ] N'publisher' ]
    [ , [ @ignore_distributor_failure = ] ignore_distributor_failure ]
[ ; ]

Аргументы

[ @publication = ] N'publication'

Имя публикации. @publication — sysname с значением по умолчанию%. Если @publication не задано, все публикации затрагиваются.

[ @article = ] N'article'

Имя статьи. @article — sysname с значением по умолчанию%. Оно должно быть уникальным для публикации. Если @article не указано, все статьи затрагиваются.

[ @subscriber = ] N'подписчик'

Имя подписчика для изменения состояния. @subscriber — sysname с значением по умолчанию%. Если @subscriber не указан, состояние изменяется для всех подписчиков в указанную статью.

[ @status = ] N'status'

Состояние подписки в syssubscriptions таблице. @status является sysname и может быть одним из этих значений.

значение Описание
active Подписчик синхронизирован и получает данные.
inactive Запись о подписчике существует, но подписка отсутствует.
subscribed Подписчик запрашивает данные, но еще не синхронизирован.

[ @previous_status = ] N'previous_status'

Предыдущее состояние подписки. @previous_status — sysname с значением по умолчаниюNULL. Этот параметр позволяет изменять все подписки, которые в настоящее время имеют это состояние, что позволяет выполнять групповые функции в определенном наборе подписок (например, при настройке всех активных подписок обратно subscribed).

[ @destination_db = ] N'destination_db'

Имя целевой базы данных. @destination_db имеет имя sysname с значением по умолчанию%.

[ @frequency_type = ] frequency_type

Указывает частоту планирования задачи распространения. @frequency_type имеет значение int с значением по умолчаниюNULL.

[ @frequency_interval = ] frequency_interval

Значение, применяемое к частоте, заданной @frequency_type. @frequency_interval имеет значение int с значением по умолчаниюNULL.

[ @frequency_relative_interval = ] frequency_relative_interval

Дата задачи распространения. Этот параметр используется, если @frequency_type имеет значение 32 (ежемесячное относительные). @frequency_relative_interval является int и может быть одним из этих значений.

значение Описание
1 First
2 Second
4 Третья
8 Четвертая
16 Last
NULL (по умолчанию)

[ @frequency_recurrence_factor = ] frequency_recurrence_factor

Коэффициент повторения, используемый @frequency_type. @frequency_recurrence_factor имеет значение int с значением по умолчаниюNULL.

[ @frequency_subday = ] frequency_subday

Указывает частоту перепланирований в минутах в течение определенного периода. @frequency_subday является int и может быть одним из этих значений.

значение Описание
1 Однократно
2 Second
4 Minute
8 Часы
NULL (по умолчанию)

[ @frequency_subday_interval = ] frequency_subday_interval

Интервал для @frequency_subday. @frequency_subday_interval имеет значение int с значением по умолчаниюNULL.

[ @active_start_time_of_day = ] active_start_time_of_day

Время дня, когда задача распространителя впервые запланирована, отформатирована как HHmmss. @active_start_time_of_day имеет значение int с значением по умолчаниюNULL.

[ @active_end_time_of_day = ] active_end_time_of_day

Время дня, когда задача распространения перестает планироваться, отформатирована как HHmmss. @active_end_time_of_day имеет значение int с значением по умолчаниюNULL.

[ @active_start_date = ] active_start_date

Дата, когда задача распространителя впервые запланирована, отформатирована как yyyyMMdd. @active_start_date имеет значение int с значением по умолчаниюNULL.

[ @active_end_date = ] active_end_date

Дата, когда задача распространителя перестает планироваться, отформатирована как yyyyMMdd. @active_end_date имеет значение int с значением по умолчаниюNULL.

[ @optional_command_line = ] N'optional_command_line'

Необязательная командная строка. @optional_command_line — nvarchar(4000) с значением по умолчаниюNULL.

[ @distribution_jobid = ] distribution_jobid OUTPUT

Идентификатор задания агент распространения на распространителю подписки при изменении состояния подписки с неактивного на активный. В других случаях он не определен. Если в одном вызове этой хранимой процедуры участвует несколько агент распространения, результат не определен. @distribution_jobid — это параметр OUTPUT типа binary(16).

[ @from_auto_sync = ] from_auto_sync

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

[ @ignore_distributor = ] ignore_distributor

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

[ @offloadagent = ] offloadagent

Этот параметр устарел и поддерживается для обратной совместимости скриптов. Установка @offloadagent в значение, отличное от 0 ошибки.

[ @offloadserver = ] N'offloadserver'

Этот параметр устарел и поддерживается для обратной совместимости скриптов. Установка @offloadserver для любого значения, отличного от NULL, приводит к ошибке.

[ @dts_package_name = ] N'dts_package_name'

Указывает имя пакета служб DTS. @dts_package_name — sysname с значением по умолчаниюNULL. Например, для пакета с именем DTSPub_Package можно указать @dts_package_name = N'DTSPub_Package'.

[ @dts_package_password = ] N'dts_package_password'

Указывает пароль на пакет. @dts_package_password имеет значение nvarchar(524) с значением по умолчаниюNULL, указывающее, что свойство пароля остается неизменным.

Примечание.

У пакета служб DTS должен быть пароль.

[ @dts_package_location = ] dts_package_location

Указывает местоположение пакета. @dts_package_location имеет значение int с значением по умолчанию0.

  • Если 0расположение пакета находится на распространителю.
  • Если 1расположение пакета находится на подписчике.

Расположение пакета может быть distributor или subscriber.

[ @skipobjectactivation = ] skipobjectactivation

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

[ @distribution_job_name = ] N'distribution_job_name'

Имя задания распространения. @distribution_job_name — sysname с значением по умолчаниюNULL.

[ @publisher = ] N'publisher'

Указывает издатель, отличный от SQL Server. @publisher — sysname с значением по умолчаниюNULL.

@publisher не следует использовать при изменении свойств статьи на издателе SQL Server.

[ @ignore_distributor_failure = ] ignore_distributor_failure

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

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

0 (успешно) или 1 (сбой).

Замечания

sp_changesubstatus используется в репликации моментальных снимков и репликации транзакций.

sp_changesubstatus изменяет состояние подписчика в syssubscriptions таблице с измененным состоянием. При необходимости он обновляет состояние статьи в таблице, чтобы указать активный sysarticles или неактивный. При необходимости он задает флаг репликации в sysobjects таблице для реплицированной таблицы.

Разрешения

Могут выполняться только члены предопределенных ролей сервера sysadmin , db_owner предопределенных sp_changesubstatusролей базы данных или создателя подписки.