アーティクルのプロパティを表示および変更する方法 (レプリケーション Transact-SQL プログラミング)
アーティクルのプロパティは、レプリケーションのストアド プロシージャを使用して、プログラムから変更および取得できます。使用するストアド プロシージャは、アーティクルが属するパブリケーションの種類によって異なります。
スナップショット パブリケーションまたはトランザクション パブリケーションに属するアーティクルのプロパティを表示するには
sp_helparticle を実行します。@publication パラメータにはパブリケーションの名前を指定し、@article パラメータにはアーティクルの名前を指定します。@article を指定しない場合、パブリケーションのすべてのアーティクルに関する情報が返されます。
テーブル アーティクルについて sp_helparticlecolumns を実行し、ベース テーブルで使用できるすべての列を一覧表示します。
スナップショット パブリケーションまたはトランザクション パブリケーションに属するアーティクルのプロパティを変更するには
sp_changearticle を実行します。このとき、変更するアーティクルのプロパティを @property パラメータに指定し、このプロパティの新しい値を @value パラメータに指定します。
注意 さらに、新しいスナップショットを生成する必要がある場合は、@force_invalidate_snapshot に 1 を、また、サブスクライバを再初期化する必要がある場合は、@force_reinit_subscription に 1 を指定します。変更時に新しいスナップショットの生成または再初期化が必要となるプロパティの詳細については、「パブリケーションおよびアーティクルのプロパティの変更」を参照してください。
マージ パブリケーションに属するアーティクルのプロパティを表示するには
sp_helpmergearticle を実行します。@publication パラメータにはパブリケーションの名前を指定し、@article パラメータにはアーティクルの名前を指定します。これらのパラメータを指定しない場合、パブリケーションまたはパブリッシャのすべてのアーティクルに関する情報が返されます。
テーブル アーティクルに対して sp_helpmergearticlecolumn を実行し、ベース テーブルで使用できるすべての列を一覧表示します。
マージ パブリケーションに属するアーティクルのプロパティを変更するには
sp_changemergearticle を実行します。このとき、変更するアーティクルのプロパティを @property パラメータに指定し、このプロパティの新しい値を @value パラメータに指定します。
注意 さらに、新しいスナップショットを生成する必要がある場合は、@force_invalidate_snapshot に 1 を、また、サブスクライバを再初期化する必要がある場合は、@force_reinit_subscription に 1 を指定します。変更時に新しいスナップショットの生成または再初期化が必要となるプロパティの詳細については、「パブリケーションおよびアーティクルのプロパティの変更」を参照してください。
使用例
パブリッシュされたアーティクルのプロパティを取得するトランザクション レプリケーションの例を、次に示します。
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksProductTran';
USE [AdventureWorks]
EXEC sp_helparticle
@publication = @publication;
GO
パブリッシュされたアーティクルのスキーマ オプションを変更するトランザクション レプリケーションの例を、次に示します。
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));
-- Change the schema options to replicate schema with XML.
USE [AdventureWorks]
EXEC sp_changearticle
@publication = @publication,
@article = @article,
@property = N'schema_option',
@value = @option,
@force_invalidate_snapshot = 1;
GO
パブリッシュされたアーティクルのプロパティを取得するマージ レプリケーションの例を、次に示します。
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
USE [AdventureWorks]
EXEC sp_helpmergearticle
@publication = @publication;
GO
パブリッシュされたアーティクルの競合検出の設定を変更するマージ レプリケーションの例を、次に示します。
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article = N'SalesOrderHeader';
-- Enable column-level conflict tracking.
-- Changing this property requires that existing subscriptions
-- be reinitialized and that a new snapshot be generated.
USE [AdventureWorks]
EXEC sp_changemergearticle
@publication = @publication,
@article = @article,
@property = N'column_tracking',
@value = N'true',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1;
GO