sp_changesubscription (Transact-SQL)

適用対象: SQL ServerAzure SQL Managed Instance

キュー更新トランザクション レプリケーションに関係するスナップショットまたはトランザクション プッシュ サブスクリプションまたはプル サブスクリプションのプロパティを変更します。 他のすべての種類のプル サブスクリプションのプロパティを変更するには、sp_change_subscription_properties (Transact-SQL) を使用します。 sp_changesubscriptionは、パブリッシャー側のパブリケーション データベースで実行されます。

重要

リモート ディストリビューターを使用するパブリッシャーを構成する場合は、 job_login および job_passwordを含むすべてのパラメーターに指定された値がディストリビューターにプレーン テキストとして送信されます。 このストアド プロシージャを実行する前に、パブリッシャーとリモート ディストリビューターの間の接続を暗号化する必要があります。 詳細については、「データベース エンジンへの暗号化接続の有効化 (SQL Server 構成マネージャー)」を参照してください。

Transact-SQL 構文表記規則

構文

  
sp_changesubscription [ @publication = ] 'publication'  
        , [ @article = ] 'article'  
        , [ @subscriber = ] 'subscriber'  
        , [ @destination_db = ] 'destination_db'  
        , [ @property = ] 'property'  
        , [ @value = ] 'value'  
    [ , [ @publisher = ] 'publisher' ]  

引数

[ @publication = ] 'publication' 変更するパブリケーションの名前を指定します。 publicationsysname で、既定値はありません

[ @article = ] 'article' 変更するアーティクルの名前を指定します。 articlesysname で、既定値はありません。

[ @subscriber = ] 'subscriber' サブスクライバーの名前です。 サブスクライバーsysname で、既定値はありません。

[ @destination_db = ] 'destination_db' サブスクリプション データベースの名前を指定します。 destination_dbは sysname で、既定値はありません。

[ @property = ] 'property' 指定されたサブスクリプションに対して変更するプロパティです。 プロパティnvarchar(30)で、テーブル内のいずれかの値を指定できます。

[ @value = ] 'value' 指定した プロパティの新しい値です。 valuenvarchar(4000)で、テーブル内のいずれかの値を指定できます。

プロパティ 説明
distrib_job_login エージェントが実行されている Microsoft Windows アカウントにログインします。
distrib_job_password エージェントを実行する Windows アカウントのパスワード。
subscriber_catalog OLE DB プロバイダーへの接続時に使用するカタログ。 このプロパティは、Microsoft SQL Server 以外のサブスクライバーに対してのみ有効です。
subscriber_datasource OLE DB プロバイダーで認識されるデータ ソースの名前。 このプロパティは、SQL Server 以外のサブスクライバーに対してのみ有効です。
subscriber_location OLE DB プロバイダーによって認識されるデータベースの場所。 このプロパティは、SQL Server 以外のサブスクライバーに対してのみ有効です。
subscriber_login サブスクライバーでのログイン名。
subscriber_password 指定されたログインの強力なパスワード。
subscriber_security_mode 1 サブスクライバーに接続するときに Windows 認証を使用。
0 サブスクライバーに接続するときは、SQL Server 認証を使用します。
subscriber_provider SQL Server 以外のデータ ソースの OLE DB プロバイダーが登録されている一意のプログラム識別子 (PROGID)。 このプロパティは、SQL Server 以外のサブスクライバーに対してのみ有効です。
subscriber_providerstring データ ソースを識別する OLE DB プロバイダー固有の接続文字列。 このプロパティは、SQL Server 以外のサブスクライバーに対してのみ有効です。
subscriptionstreams サブスクライバーに変更のバッチを並列で適用するために、ディストリビューション エージェントごとに許可される接続の数です。 SQL Server パブリッシャーでは、1 ~ 64 の範囲の値がサポートされています。 SQL Server 以外のサブスクライバー、Oracle パブリッシャー、またはピアツーピア サブスクリプションの場合、このプロパティは 0 である必要があります
subscriber_type 1 ODBC データ ソース サーバー
3 OLE DB プロバイダー
memory_optimized bit サブスクリプションがメモリ最適化テーブルをサポートしていることを示します。 memory_optimizedはビットであり、1 は true です (サブスクリプションはメモリ最適化テーブルをサポートしています)。

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

Note

SQL Server パブリッシャーにはパブリッシャー を指定しないでください。

リターン コードの値

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

解説

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

sp_changesubscriptionは、キュー更新トランザクション レプリケーションに関連するプッシュ サブスクリプションまたはプル サブスクリプションのプロパティの変更にのみ使用できます。 他のすべての種類のプル サブスクリプションのプロパティを変更するには、sp_change_subscription_properties (Transact-SQL) を使用します。

エージェントのログインまたはパスワードを変更した後、変更を有効にするには、エージェントを停止して再起動する必要があります。

アクセス許可

sp_changesubscriptionを実行できるのは、sysadmin 固定サーバー ロールまたは固定データベース ロールdb_ownerメンバーだけです。

参照

sp_addsubscription (Transact-SQL)
sp_dropsubscription (Transact-SQL)