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
ролей базы данных или создателя подписки.