sp_changesubstatus (Transact-SQL)

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

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

Синтаксис

sp_changesubstatus [ [ @publication = ] 'publication' ]
    [ , [ @article = ] 'article' ]
    [ , [ @subscriber = ] 'subscriber' ]
        , [ @status = ] 'status'
    [ , [ @previous_status = ] 'previous_status' ]
    [ , [ @destination_db = ] '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 = ] 'optional_command_line' ]
    [ , [ @distribution_jobid = ] distribution_jobid ]
    [ , [ @from_auto_sync = ] from_auto_sync ]
    [ , [ @ignore_distributor = ] ignore_distributor ]
    [ , [ @offloadagent= ] remote_agent_activation ]
    [ , [ @offloadserver= ] 'remote_agent_server_name' ]
    [ , [ @dts_package_name= ] 'dts_package_name' ]
    [ , [ @dts_package_password= ] 'dts_package_password' ]
    [ , [ @dts_package_location= ] dts_package_location ]
    [ , [ @skipobjectactivation = ] skipobjectactivation
  [ , [ @distribution_job_name= ] 'distribution_job_name' ]
    [ , [ @publisher = ] 'publisher' ]

Аргументы

  • [ @publication=] 'publication'
    Имя публикации. Аргумент publication имеет тип sysname и значение по умолчанию %. Если значение publication не указано, действия влияют на все публикации.

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

  • [ @subscriber=] 'subscriber'
    Имя подписчика, состояние которого подлежит изменению. Аргумент subscriber имеет тип sysname и значение по умолчанию %. Если значение аргумента subscriber не указано, состояние изменяется для всех подписчиков на указанную статью.

  • [ @status =] 'status'
    Состояние подписки в таблице syssubscriptions. Аргумент status имеет тип sysname, не имеет значения по умолчанию и может принимать одно из следующих значений.

    Значение

    Описание

    active

    Подписчик синхронизирован и получает данные.

    inactive

    Запись о подписчике существует, но подписка отсутствует.

    subscribed

    Подписчик запрашивает данные, но еще не синхронизирован.

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

  • [ @destination_db=] '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

    Первый

    2

    Второй

    4

    Третий

    8

    Четвертый

    16

    Последний

    NULL (по умолчанию)

     

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

  • [ @frequency_subday=] frequency_subday
    Частота повторного планирования в течение определенного периода, в минутах. Аргумент frequency_subday имеет тип int и может принимать одно из следующих значений.

    Значение

    Описание

    1

    Однократно

    2

    Секунда

    4

    Минута

    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
    Время суток, на которое запланирован первый запуск задачи распространения в формате ЧЧММСС. Аргумент active_start_time_of_day имеет тип int и значение по умолчанию NULL.

  • [ @active_end_time_of_day=] active_end_time_of_day
    Время, когда будет прекращено выполнение задачи распространения по расписанию, в формате ЧЧММСС. Аргумент active_end_time_of_day имеет тип int и значение по умолчанию NULL.

  • [ @active_start_date=] active_start_date
    Дата, когда запланирован первый запуск задачи распространения, в формате ГГГГММДД. Аргумент active_start_date имеет тип int и значение по умолчанию NULL.

  • [ @active_end_date=] active_end_date
    Дата, когда запланирован останов задачи распространения в формате ГГГГММДД. Аргумент active_end_date имеет тип int и значение по умолчанию NULL.

  • [ @optional_command_line=] 'optional_command_line'
    Дополнительная командная строка. Аргумент optional_command_line имеет тип nvarchar(4000) и значение по умолчанию NULL.

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

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

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

  • [ @offloadagent= ] remote_agent_activation

    ПримечаниеПримечание

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

  • [ @offloadserver= ] 'remote_agent_server_name'

    ПримечаниеПримечание

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

  • [ @dts_package_name= ] 'dts_package_name'
    Указывает имя пакета служб DTS. Аргумент dts_package_name имеет тип sysname и значение по умолчанию NULL. Например, для пакета с именем DTSPub_Package может быть указано имя аргумента @dts\_package\_name = N'DTSPub_Package'.

  • [ @dts_package_password= ] 'dts_package_password'
    Указывает пароль на пакет. Аргумент dts_package_password имеет тип sysname и значение по умолчанию NULL, которое указывает, что пароль должен остаться без изменения.

    ПримечаниеПримечание

    Для пакета служб DTS наличие пароля обязательно.

  • [ @dts_package_location= ] dts_package_location
    Указывает местоположение пакета. Аргумент dts_package_location имеет тип int и значение по умолчанию 0. Значение 0 указывает на то, что пакет находится на распространителе. Значение 1 указывает на то, что пакет находится на подписчике. Для местоположения пакета могут быть указаны значения distributor или subscriber.

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

  • [ @distribution_job_name= ] 'distribution_job_name'
    Имя задания распространения. Аргумент distribution_job_name имеет тип sysname и значение по умолчанию NULL.

  • [ @publisher= ] 'publisher'
    Задает издателя, отличного от Microsoft SQL Server. Аргумент publisher имеет тип sysname и значение по умолчанию NULL.

    ПримечаниеПримечание

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

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

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

Замечания

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

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

Разрешения

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

См. также

Справочник

sp_addsubscription (Transact-SQL)

sp_dropsubscription (Transact-SQL)

sp_helpdistributor (Transact-SQL)

sp_helpsubscription (Transact-SQL)

Системные хранимые процедуры (Transact-SQL)