このトピックでは、SQL Server Management Studio、Transact-SQL、またはレプリケーション管理オブジェクト (RMO) を使用して、SQL Server 2014 のプル サブスクリプション プロパティを表示および変更する方法について説明します。
このトピックについて
プル サブスクリプションのプロパティを表示および変更するには、次を使用します。
SQL Server Management Studio の使用
パブリッシャーまたはサブスクライバーのプル サブスクリプション プロパティを、SQL Server Management Studio から使用できる [ サブスクリプションのプロパティ - <Publisher>: <PublicationDatabase> ] ダイアログ ボックスで表示します。 サブスクライバーからさらに多くのプロパティが表示され、サブスクライバーでプロパティを変更できます。 レプリケーション モニターで使用できる [ すべてのサブスクリプション ] タブで、パブリッシャーからプロパティを表示することもできます。 レプリケーション モニターの起動については、「レプリケーション モニターの起動」を参照してください。
Management Studio でパブリッシャーからプル サブスクリプションのプロパティを表示するには
Management Studio でパブリッシャーに接続し、サーバー ノードを展開します。
[レプリケーション] フォルダーを展開し、[ローカル パブリケーション] フォルダーを展開します。
適切なパブリケーションを展開し、サブスクリプションを右クリックし、[ プロパティ] をクリックします。
プロパティを表示し、[OK] をクリック します。
Management Studio でサブスクライバーからプル サブスクリプションのプロパティを表示および変更するには
Management Studio でサブスクライバーに接続し、サーバー ノードを展開します。
[レプリケーション] フォルダーを展開し、[ローカル サブスクリプション] フォルダーを展開します。
サブスクリプションを右クリックし、[ プロパティ] をクリックします。
必要に応じてプロパティを変更し、[ OK] をクリックします。
レプリケーション モニターでパブリッシャーからプル サブスクリプションのプロパティを表示するには
レプリケーション モニターの左ペインのパブリッシャー グループを展開し、パブリッシャーを展開して、パブリケーションをクリックします。
[ すべてのサブスクリプション ] タブをクリックします。
サブスクリプションを右クリックし、[ プロパティ] をクリックします。
プロパティを表示し、[OK] をクリック します。
Transact-SQL の使用
プル サブスクリプションは、レプリケーション ストアド プロシージャを使用してプログラムで変更し、そのプロパティにアクセスできます。 使用されるストアド プロシージャは、サブスクリプションが属するパブリケーションの種類によって異なります。
スナップショット パブリケーションまたはトランザクション パブリケーションに対するプル サブスクリプションのプロパティを表示するには
サブスクライバーで、 sp_helppullsubscriptionを実行します。 @publisher、@publisher_db、および@publicationを指定します。 サブスクライバーのシステム テーブルに格納されているサブスクリプションに関する情報が返されます。
サブスクライバーで、 sp_helpsubscription_propertiesを実行します。 @publication_typeには、@publisher、@publisher_db、@publication、および次のいずれかの値を指定します。
0 - サブスクリプションはトランザクション パブリケーションに属します。
1 - サブスクリプションはスナップショット パブリケーションに属します。
パブリッシャーで、 sp_helpsubscriptionを実行します。 @publicationと@subscriberを指定します。
パブリッシャーで、 @subscriberを指定して、 sp_helpsubscriberinfoを実行します。 サブスクライバーに関する情報が表示されます。
プル サブスクリプションのプロパティをスナップショット パブリケーションまたはトランザクション パブリケーションに変更するには
サブスクライバーでsp_change_subscription_propertiesを実行し、@publisher、@publisher_db、@publicationを指定し、@publication_typeには0(トランザクション)または1(スナップショット)の値を指定します。変更されるサブスクリプション プロパティは@propertyとして、新しい値は@valueとして指定します。
(省略可能)サブスクリプション データベースのサブスクライバーで、 sp_changesubscriptiondtsinfoを実行します。 @jobidのディストリビューション エージェント ジョブの ID と、次のデータ変換サービス (DTS) パッケージ プロパティを指定します。
@dts_package_name
@dts_package_password
@dts_package_location
これにより、サブスクリプションの DTS パッケージプロパティが変更されます。
注
ジョブ ID は、 sp_helpsubscriptionを実行することで取得できます。
マージ パブリケーションに対するプル サブスクリプションのプロパティを表示するには
サブスクライバーで、sp_helpmergepullsubscriptionを実行します。 @publisher、@publisher_db、および@publicationを指定します。
サブスクライバーで、 sp_helpsubscription_propertiesを実行します。 @publisher、@publisher_db、@publication、および@publication_type に値 2 を指定します。
パブリッシャーで 、sp_helpmergesubscription を実行してサブスクリプション情報を表示します。 特定のサブスクリプションに関する情報を返すには、@publication、@subscriber、および@subscription_typeの pull の値を指定する必要があります。
パブリッシャーで、 @subscriberを指定して、 sp_helpsubscriberinfoを実行します。 サブスクライバーに関する情報が表示されます。
プル サブスクリプションのプロパティをマージ パブリケーションに変更するには
- サブスクライバーで、 sp_changemergepullsubscriptionを実行します。 @publication、@publisher、@publisher_db、@propertyとして変更するサブスクリプション プロパティ、新しい値を@valueとして指定します。
レプリケーション管理オブジェクト (RMO) の使用
プル サブスクリプションのプロパティを表示または変更するために使用する RMO クラスは、プル サブスクリプションがサブスクライブされているパブリケーションの種類によって異なります。
スナップショット パブリケーションまたはトランザクション パブリケーションに対するプル サブスクリプションのプロパティを表示または変更するには
ServerConnection クラスを使用してサブスクライバーへの接続を作成します。
TransPullSubscription クラスのインスタンスを作成します。
PublicationName、DatabaseName、PublisherName、およびPublicationDBNameのプロパティを設定します。
ConnectionContext プロパティの手順 1 の接続を設定します。
LoadProperties メソッドを呼び出して、オブジェクトのプロパティを取得します。 このメソッドが
false
を返す場合は、手順 3 のサブスクリプション プロパティが正しく定義されていないか、サブスクリプションがサーバーに存在しません。(省略可能)プロパティを変更するには、設定できる TransPullSubscription プロパティの 1 つに新しい値を設定し、 CommitPropertyChanges メソッドを呼び出します。
(省略可能)新しい設定を表示するには、 Refresh メソッドを呼び出して、アーティクルのプロパティを再読み込みします。
すべての接続を閉じます。
マージ パブリケーションに対するプル サブスクリプションのプロパティを表示または変更するには
ServerConnection クラスを使用してサブスクライバーへの接続を作成します。
MergePullSubscription クラスのインスタンスを作成します。
PublicationName、DatabaseName、PublisherName、およびPublicationDBNameのプロパティを設定します。
ConnectionContext プロパティの手順 1 の接続を設定します。
LoadProperties メソッドを呼び出して、オブジェクトのプロパティを取得します。 このメソッドが
false
を返す場合は、手順 3 のサブスクリプション プロパティが正しく定義されていないか、サブスクリプションがサーバーに存在しません。(省略可能)プロパティを変更するには、設定できる MergePullSubscription プロパティの 1 つに新しい値を設定し、 CommitPropertyChanges メソッドを呼び出します。
(省略可能)新しい設定を表示するには、 Refresh メソッドを呼び出して、アーティクルのプロパティを再読み込みします。
すべての接続を閉じます。
こちらもご覧ください
レプリケーション モニターを使用した情報の表示とタスクの実行
レプリケーション のセキュリティに関するベスト プラクティス
パブリケーションを購読する