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


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

  • [ @active_end_date=] active_end_date
    Дата, когда прекращается постановка в расписание задачи распространения, в формате ГГГГМMДД. Аргумент 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.