sp_changesubstatus (Transact-SQL)
適用対象: SQL Server Azure SQL Managed Instance
既存のサブスクライバーの状態を変更します。 このストアド プロシージャは、パブリッシャー側のパブリケーション データベースで実行されます。
構文
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'
状態を変更するサブスクライバーの名前。 @subscriber は sysname で、既定値は %
です。 @subscriberが指定されていない場合、指定したアーティクルのすべてのサブスクライバーの状態が変更されます。
[ @status = ] N'status'
syssubscriptions
テーブルのサブスクリプションの状態。 @status は sysname であり、次のいずれかの値を指定できます。
Value | 説明 |
---|---|
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 であり、これらの値のいずれかを指定できます。
Value | 説明 |
---|---|
1 |
最初 |
2 |
Second |
4 |
Third |
8 |
4 番目 |
16 |
最後 |
NULL (既定) |
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
@frequency_typeによって使用される繰り返し係数。 @frequency_recurrence_factor は int で、既定値は NULL
です。
[ @frequency_subday = ] frequency_subday
定義された期間中にスケジュールを変更する頻度を分単位で指定します。 @frequency_subday は int であり、これらの値のいずれかを指定できます。
Value | 説明 |
---|---|
1 |
1 回。 |
2 |
Second |
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
配布タスクが最初にスケジュールされ、 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
サブスクリプションの状態を非アクティブからアクティブに変更するときの、サブスクリプションのディストリビューターにあるディストリビューション エージェントのジョブ ID。 それ以外の場合は、定義されていません。 このストアド プロシージャの 1 回の呼び出しに複数のディストリビューション エージェントが関係している場合、結果は定義されません。 @distribution_jobid は、 binary(16)型の OUTPUT パラメーターです。
[ @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
で、パスワード プロパティを変更せずに残します。
Note
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
です。
SQL Server パブリッシャーでアーティクルのプロパティを変更する場合は、@publisher を使用しないでください。
[ @ignore_distributor_failure = ] ignore_distributor_failure
単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。
リターン コードの値
0
(成功) または 1
(失敗)。
解説
sp_changesubstatus
は、スナップショット レプリケーションとトランザクション レプリケーションで使用されます。
sp_changesubstatus
は、 syssubscriptions
テーブル内のサブスクライバーの状態を変更し、状態を変更します。 必要に応じて、 sysarticles
テーブルのアーティクルの状態が更新され、アクティブまたは非アクティブが示されます。 必要に応じて、レプリケートテーブルの sysobjects
テーブルでレプリケーション フラグをオンまたはオフに設定します。
アクセス許可
sysadmin固定サーバー ロール、db_owner固定データベース ロール、またはサブスクリプションの作成者のメンバーのみが、sp_changesubstatus
を実行できます。