次の方法で共有


sp_changesubstatus (Transact-SQL)

適用対象: SQL Server Azure SQL Managed Instance

既存のサブスクライバーの状態を変更します。 このストアド プロシージャは、パブリッシャー側のパブリケーション データベースで実行されます。

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' パブリケーションの名前を指定します。 publicationsysname で、既定値は % です。 発行が指定されていない場合、すべてのパブリケーションが影響を受けます。

[ @article = ] 'article' 記事の名前を指定します。 アーティクルの名前はパブリケーションに対して一意である必要があります。 articlesysname で、既定値は % です。 articleが指定されていない場合、すべてのアーティクルが影響を受けます。

[ @subscriber = ] 'subscriber' 状態を変更するサブスクライバーの名前を指定します。 subscribersysname で、既定値は % です。 subscriberが指定されていない場合、指定したアーティクルのすべてのサブスクライバーの状態が変更されます。

[ @status = ] 'status'syssubscriptions テーブルのサブスクリプションの状態です。 statussysname で、既定値はなく、次のいずれかの値を指定できます。

Value 説明
active サブスクライバーが同期され、データを受信しています。
inactive サブスクライブはしていませんが、サブスクライバーのエントリが存在します。
購読 サブスクライバーはデータを要求していますが、まだ同期はとられていません。

[ @previous_status = ] 'previous_status' サブスクリプションの以前の状態です。 previous_statussysname で、既定値は NULL です。 このパラメーターを使用すると、現在その状態を持つサブスクリプションを変更できるため、特定の一連のサブスクリプションでグループ関数を使用できます (たとえば、アクティブなすべてのサブスクリプションを サブスクライブに戻す)。

[ @destination_db = ] 'destination_db' コピー先データベースの名前を指定します。 destination_dbsysname で、既定値は % です。

[ @frequency_type = ] frequency_type 配布タスクをスケジュールする頻度を指定します。 frequency_typeint で、既定値は NULL です。

[ @frequency_interval = ] frequency_intervalfrequency_typeによって設定された頻度に適用する値です。 frequency_intervalint で、既定値は NULL です。

[ @frequency_relative_interval = ] frequency_relative_interval 配布タスクの日付を指定します。 このパラメーターは、 frequency_type が 32 (毎月の相対) に設定されている場合に使用されます。 frequency_relative_intervalint であり、これらの値のいずれかを指定できます。

Value 説明
1 最初
2 Second
4 Third
8 4 番目
16 最後
NULL (既定値)

[ @frequency_recurrence_factor = ] frequency_recurrence_factorfrequency_typeで使用される繰り返し係数です。 frequency_recurrence_factorint で、既定値は NULL です。

[ @frequency_subday = ] frequency_subday 定義された期間中にスケジュールを変更する頻度を分単位で指定します。 frequency_subdayint であり、これらの値のいずれかを指定できます。

Value 説明
1 1 回。
2 Second
4
8 時間
NULL (既定値)

[ @frequency_subday_interval = ] frequency_subday_intervalfrequency_subdayの間隔です。 frequency_subday_intervalint で、既定値は NULL です。

[ @active_start_time_of_day = ] active_start_time_of_day 配布タスクが最初にスケジュールされた時刻で、 HHmmss形式です。 active_start_time_of_dayint で、既定値は NULL です。

[ @active_end_time_of_day = ] active_end_time_of_day 配布タスクのスケジュールが終了した時刻を HHmmss形式で指定します。 active_end_time_of_dayint で、既定値は NULL です。

[ @active_start_date = ] active_start_date 配布タスクが最初にスケジュールされた日付を yyyyMMdd形式で指定します。 active_start_dateint で、既定値は NULL です。

[ @active_end_date = ] active_end_date 配布タスクのスケジュールが終了した日付を yyyyMMdd形式で指定します。 active_end_dateint で、既定値は NULL です。

[ @optional_command_line = ] 'optional_command_line' 省略可能なコマンド プロンプトです。 optional_command_linenvarchar(4000)で、既定値は NULL です。

[ @distribution_jobid = ] distribution_jobidサブスクリプションの状態を非アクティブからアクティブに変更するときの、サブスクリプションのディストリビューターのディストリビューション エージェントのジョブ ID です。 その他の場合は、定義されません。 このストアド プロシージャの 1 回の呼び出しに複数のディストリビューション エージェントが関係している場合、結果は定義されません。 distribution_jobidbinary(16)で、既定値は NULL です。

[ @from_auto_sync = ] from_auto_sync

単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。

[ @ignore_distributor = ] ignore_distributor

単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。

[ @offloadagent = ] remote_agent_activation

Note

リモート エージェントのアクティブ化は非推奨となり、サポートされなくなりました。 このパラメーターは、スクリプトの下位互換性を維持するためにのみサポートされます。 remote_agent_activation0 以外の値に設定するとエラーが発生します。

[ @offloadserver = ] 'remote_agent_server_name'

Note

リモート エージェントのアクティブ化は非推奨となり、サポートされなくなりました。 このパラメーターは、スクリプトの下位互換性を維持するためにのみサポートされます。 remote_agent_server_nameを NULL 以外の値に設定すると、エラーが発生します。

[ @dts_package_name = ] 'dts_package_name' データ変換サービス (DTS) パッケージの名前を指定します。 dts_package_namesysname で、既定値は NULL です。 たとえば、 DTSPub_Package という名前のパッケージの場合は、 @dts_package_name = N'DTSPub_Package'を指定します。

[ @dts_package_password = ] 'dts_package_password' パッケージのパスワードを指定します。 dts_package_passwordsysname の既定値は NULL で、パスワード プロパティは変更されません。

Note

DTS パッケージにはパスワードが必要です。

[ @dts_package_location = ] dts_package_location パッケージの場所を指定します。 dts_package_locationint で、既定値は 0 です。 0場合、パッケージの場所はディストリビューターにあります。 1場合、パッケージの場所はサブスクライバーにあります。 パッケージの場所は、 distributor または subscriber にすることができます。

[ @skipobjectactivation = ] skipobjectactivation

単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。

[ @distribution_job_name = ] 'distribution_job_name' 配布ジョブの名前を指定します。 distribution_job_namesysname で、既定値は NULL です。

[ @publisher = ] 'publisher' Microsoft SQL Server 以外のパブリッシャーを指定します。 publishersysname で、既定値は NULL です。

Note

パブリッシャー は、SQL Server パブリッシャーのアーティクルのプロパティを変更するときに使用しないでください。

リターン コードの値

0 (成功) または 1 (失敗)

解説

sp_changesubstatus は、スナップショット レプリケーションとトランザクション レプリケーションで使用されます。

sp_changesubstatussyssubscriptions テーブルのサブスクライバーの状態が変更され、その状態が変更されます。 必要に応じて、 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)