パブリケーションのプロパティを表示および変更する方法 (レプリケーション Transact-SQL プログラミング)
パブリケーションのプロパティは、レプリケーションのストアド プロシージャを使用して、プログラムから変更および取得できます。どのストアド プロシージャを使用するかは、パブリケーションの種類によって異なります。
スナップショット パブリケーションまたはトランザクション パブリケーションのプロパティを表示するには
- @publication パラメータにパブリケーション名を指定して、sp_helppublication を実行します。このパラメータを指定しなかった場合、パブリッシャのすべてのパブリケーションの情報が返されます。
スナップショット パブリケーションまたはトランザクション パブリケーションのプロパティを変更するには
sp_changepublication を実行します。このとき、変更するパブリケーションのプロパティを @property パラメータに指定し、このプロパティの新しい値を @value パラメータに指定します。
注意 さらに、新しいスナップショットを生成する必要がある場合は、@force_invalidate_snapshot に 1 を、また、サブスクライバを再初期化する必要がある場合は、@force_reinit_subscription に 1 を指定します。変更時に新しいスナップショットの生成または再初期化が必要となるプロパティの詳細については、「パブリケーションおよびアーティクルのプロパティの変更」を参照してください。
マージ パブリケーションのプロパティを表示するには
- @publication パラメータにパブリケーション名を指定して、sp_helpmergepublication を実行します。このパラメータを指定しなかった場合、パブリッシャのすべてのパブリケーションの情報が返されます。
マージ パブリケーションのプロパティを変更するには
sp_changemergepublication を実行します。このとき、変更するパブリケーションのプロパティを @property パラメータに指定し、このプロパティの新しい値を @value パラメータに指定します。
注意 さらに、新しいスナップショットを生成する必要がある場合は、@force_invalidate_snapshot に 1 を、また、サブスクライバを再初期化する必要がある場合は、@force_reinit_subscription に 1 を指定します。変更時に新しいスナップショットの生成または再初期化が必要となるプロパティの詳細については、「パブリケーションおよびアーティクルのプロパティの変更」を参照してください。
スナップショットのプロパティを表示するには
- @publication パラメータにパブリケーション名を指定して、sp_helppublication_snapshot を実行します。
スナップショットのプロパティを変更するには
- 変更対象のスナップショット パラメータに新しいスナップショット プロパティを少なくとも 1 つ指定して、sp_changepublication_snapshot を実行します。
使用例
パブリケーションのプロパティを取得するトランザクション レプリケーションの例を、次に示します。
DECLARE @myTranPub AS sysname
SET @myTranPub = N'AdvWorksProductTran'
USE [AdventureWorks]
EXEC sp_helppublication @publication = @myTranPub
GO
パブリケーションのスキーマ レプリケーションを無効化するトランザクション レプリケーションの例を、次に示します。
DECLARE @publication AS sysname
SET @publication = N'AdvWorksProductTran'
-- Turn off DDL replication for the transactional publication.
USE [AdventureWorks]
EXEC sp_changepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0
GO
パブリケーションのプロパティを取得するマージ レプリケーションの例を、次に示します。
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
USE [AdventureWorks]
EXEC sp_helpmergepublication @publication = @publication;
GO
パブリケーションのスキーマ レプリケーションを無効化するマージ レプリケーションの例を、次に示します。
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO