sp_changemergearticle (Transact-SQL)

更新 : 2006 年 4 月 14 日

マージ アーティクルのプロパティを変更します。このストアド プロシージャは、パブリッシャ側でパブリケーション データベースについて実行されます。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

sp_changemergearticle [ @publication = ] 'publication'
        , [ @article = ] 'article'
    [ , [ @property = ] 'property' ]
    [ , [ @value = ] 'value' ]
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]

引数

  • [ @publication=] 'publication'
    アーティクルが存在するパブリケーションの名前を指定します。publication のデータ型は sysname で、既定値はありません。
  • [ @article = ] 'article'
    変更するアーティクルの名前を指定します。article のデータ型は sysname で、既定値はありません。
  • [ @property=] 'property'
    指定したアーティクルとパブリケーションの変更対象となるプロパティを指定します。property のデータ型は nvarchar(30) で、表に記載されているいずれかの値を指定できます。
  • [ @value=] 'value'
    対象となるプロパティの新しい値を指定します。value のデータ型は nvarchar(1000) で、表に記載されているいずれかの値を指定できます。

    次の表に、アーティクルのプロパティと、それぞれの値を示します。

    プロパティ

  • [ @force_invalidate_snapshot = ] force_invalidate_snapshot
    このストアド プロシージャが実行する操作によって既存のスナップショットが無効になることを許可します。force_invalidate_snapshot のデータ型は bit で、既定値は 0 です。

    0 に設定すると、マージ アーティクルへの変更によってスナップショットが無効になることはありません。変更に新しいスナップショットが必要であることをストアド プロシージャが検出すると、エラーが発生し、変更は行われません。

    1 に設定すると、マージ アーティクルの変更によってスナップショットが無効になることがあります。また、新しいスナップショットを必要とする既存のサブスクリプションがある場合は、既存のスナップショットに古いスナップショットのマークを付けて、新しいスナップショットを生成することができます。

    変更によって新しいスナップショットの生成が必要になるプロパティについては、「解説」を参照してください。

  • [ @force_reinit_subscription = ] force_reinit_subscription
    このストアド プロシージャが実行する操作によって、既存のサブスクリプションの再初期化が必要になることを許可します。force_reinit_subscription のデータ型は bit で、既定値は 0 です。

    0 に設定すると、マージ アーティクルへの変更によってサブスクリプションが再初期化されることはありません。変更に既存のサブスクリプションの再初期化が必要であることをストアド プロシージャが検出すると、エラーが発生し、変更は加えられません。

    1 は、マージ アーティクルの変更によって既存のサブスクリプションが再初期化されることを示し、サブスクリプションの再初期化を許可します。

    変更によって既存のサブスクリプションの再初期化が必要になるプロパティについては、「解説」を参照してください。

リターン コードの値

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

解説

sp_changemergearticle はマージ レプリケーションで使用します。

sp_changemergearticle は、sp_addmergearticle で最初に指定されたアーティクルのプロパティを変更する場合に使用されます。これらのプロパティの詳細については、「sp_addmergearticle」を参照してください。

次のプロパティを変更するには、新しいスナップショットを生成する必要があります。また force_invalidate_snapshot パラメータに値 1 を指定する必要があります。

  • check_permissions
  • column_tracking
  • destination_owner
  • pre_creation_cmd
  • schema_options
  • subset_filterclause

次のプロパティを変更するには、既存のサブスクリプションを再初期化する必要があります。また force_reinit_subscription パラメータに値 1 を指定する必要があります。

  • check_permissions
  • column_tracking
  • destination_owner
  • subscriber_upload_options
  • subset_filterclause

partition_options に 3 を指定すると、マージ エージェントが実行されるたびにメタデータがクリーンアップされ、パーティション スナップショットの有効期限が短くなります。このオプションを使用するときは、サブスクライバが要求したパーティション スナップショットを有効にすることを検討してください。詳細については、「パラメータ化されたフィルタを使用したマージ パブリケーションのスナップショット」を参照してください。

column_tracking プロパティを設定するときに、テーブルが他のマージ パブリケーションで既にパブリッシュされている場合は、列追跡の値を、このテーブルに基づく既存のアーティクルが使用している値と同じにする必要があります。このパラメータは、テーブル アーティクルのみに固有のものです。

同一のテーブルに基づいているアーティクルを、複数のパブリケーションがパブリッシュしている場合、1 つのアーティクルの delete_tracking プロパティまたは compensate_for_errors プロパティを変更すると、同じテーブルに基づいている他のアーティクルにも同じ変更が加えられます。

マージ処理が使用するパブリッシャのログインまたはユーザー アカウントが正しいテーブル権限を持っていない場合、無効な変更は競合としてログに記録されます。

schema_option の値を変更すると、ビットごとの更新は実行されません。つまり、sp_changemergearticle を使用して schema_option を設定すると、既存のビット設定が無効になる可能性があります。既存の設定を維持するには、設定する値と、schema_option の現在の値の間で、& (ビット演算子 AND) を実行する必要があります。schema_option の現在の値は、sp_helpmergearticle を実行することによって判断できます。

有効なスキーマ オプションの一覧

次の表に、アーティクルの種類に応じて許可される schema_option の値を示します。

アーティクルの種類 スキーマ オプションの値

func schema only

0x01 および 0x2000

indexed view schema only

0x010x0400x01000x20000x400000x1000000、および 0x200000

proc schema only

0x01 および 0x2000

table

すべてのオプション

view schema only

0x010x0400x01000x20000x400000x1000000、および 0x200000

権限

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

使用例

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

参照

関連項目

sp_addmergearticle (Transact-SQL)
sp_dropmergearticle (Transact-SQL)
sp_helpmergearticle (Transact-SQL)
レプリケーション ストアド プロシージャ (Transact-SQL)

その他の技術情報

アーティクルのプロパティを表示および変更する方法 (レプリケーション Transact-SQL プログラミング)
パブリケーションおよびアーティクルのプロパティの変更

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2006 年 4 月 14 日

変更内容 :
  • schema_option プロパティの 0x20000000 値についての説明を更新。

2005 年 12 月 5 日

新しい内容
  • schema_option パラメータに 0x20 オプションを設定する場合の追加制約についての説明を追加。
変更内容 :
  • テーブル アーティクルの既定のスキーマ オプション値に関する情報を更新。