sp_changesubstatus (Transact-SQL)
適用対象: SQL ServerAzure SQL Managed Instance
既存のサブスクライバーの状態を変更します。 このストアド プロシージャは、パブリッシャー側のパブリケーション データベースで実行されます。
構文
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 で、既定値は %. パブリケーションが指定されていない場合、すべてのパブリケーションが影響を受ける。
[ @article = ] 'article'
記事の名前を指定します。 アーティクルの名前はパブリケーションに対して一意である必要があります。 article は sysname で、既定値は %. アーティクルが指定されていない場合、すべてのアーティクルが影響を受ける。
[ @subscriber = ] 'subscriber'
状態を変更するサブスクライバーの名前を指定します。 サブスクライバー は sysname で、既定値は %. サブスクライバーが指定されていない場合、指定したアーティクルのすべてのサブスクライバーの状態が変更されます。
[ @status = ] 'status'
syssubscriptions テーブルのサブスクリプションの 状態です 。 status は sysname で、既定値はありません。これらの値のいずれかを指定できます。
Value | 説明 |
---|---|
active | サブスクライバーが同期され、データを受信しています。 |
inactive | サブスクライブはしていませんが、サブスクライバーのエントリが存在します。 |
購読 | サブスクライバーはデータを要求していますが、まだ同期はとられていません。 |
[ @previous_status = ] 'previous_status'
サブスクリプションの以前の状態です。 previous_statusは sysname で、既定値は NULL です。 このパラメーターを使用すると、現在その状態のサブスクリプションを変更できるため、特定のサブスクリプション セットのグループ関数を使用できます (たとえば、アクティブなすべてのサブスクリプションをサブスクライブ済みに戻すなど)。
[ @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 であり、これらの値のいずれかになります。
Value | 説明設定 |
---|---|
1 | 最初 |
2 | Second |
4 | 3 番目 |
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 = ] 'optional_command_line'
省略可能なコマンド プロンプトです。 optional_command_lineは nvarchar(4000) で、既定値は NULL です。
[ @distribution_jobid = ] distribution_jobid
サブスクリプションの状態を非アクティブからアクティブに変更するときの、サブスクリプションのディストリビューターのディストリビューション エージェントのジョブ ID です。 その他の場合は、定義されません。 このストアド プロシージャの 1 回の呼び出しに複数のディストリビューション エージェントが関係している場合、結果は定義されません。 distribution_jobidは binary(16) で、既定値は NULL です。
[ @from_auto_sync = ] from_auto_sync
単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。
[ @ignore_distributor = ] ignore_distributor
単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。
[ @offloadagent = ] remote_agent_activation
Note
リモート エージェントのアクティブ化は非推奨となり、サポートされなくなりました。 このパラメーターは、スクリプトの下位互換性メイン維持するためにのみサポートされます。 remote_agent_activationを 0 以外の値に設定すると、エラーが発生します。
[ @offloadserver = ] 'remote_agent_server_name'
Note
リモート エージェントのアクティブ化は非推奨となり、サポートされなくなりました。 このパラメーターは、スクリプトの下位互換性メイン維持するためにのみサポートされます。 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は、既定値が NULL の sysname であり、パスワード プロパティを変更せずに残すよう指定します。
Note
DTS パッケージにはパスワードが必要です。
[ @dts_package_location = ] dts_package_location
パッケージの場所を指定します。 dts_package_locationは int で、既定値は 0 です。 0 の場合、パッケージの場所はディストリビューターにあります。 1 の場合、パッケージの場所はサブスクライバーにあります。 パッケージの場所は、ディストリビューターまたはサブスクライバーにすることができます。
[ @skipobjectactivation = ] skipobjectactivation
単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。
[ @distribution_job_name = ] 'distribution_job_name'
配布ジョブの名前を指定します。 distribution_job_nameは sysname で、既定値は NULL です。
[ @publisher = ] 'publisher'
Microsoft SQL Server 以外のパブリッシャーを指定します。 publisher は sysname で、既定値は NULL です。
Note
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)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示