sp_changesubstatus (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'
Указывает издателя, не являющегося издателем MicrosoftSQL Server. Аргумент publisher имеет тип sysname и значение по умолчанию NULL.Примечание Аргумент publisher нельзя использовать при изменении свойств статьи на издателе SQL Server.
Значения кодов возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Замечания
Процедура sp_changesubstatus используется в репликации моментальных снимков и репликации транзакций.
Процедура sp_changesubstatus изменяет состояние подписчика в таблице syssubscriptions с измененным состоянием. Если необходимо, она изменяет состояние статьи в таблице sysarticles для указания активности или неактивности. Если необходимо, она включает или выключает флаг репликации в таблице sysobjects для реплицируемой таблицы.
Разрешения
Только члены предопределенной роли сервера sysadmin предопределенной роли базы данных db_owner или создатель подписки могут выполнять процедуру sp_changesubstatus.