sp_changemergefilter (Transact-SQL)

適用対象:SQL Server

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

Transact-SQL 構文表記規則

構文

sp_changemergefilter
    [ @publication = ] N'publication'
    , [ @article = ] N'article'
    , [ @filtername = ] N'filtername'
    , [ @property = ] N'property'
    , [ @value = ] N'value'
    [ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
    [ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]

引数

[ @publication = ] N'publication'

出版物の名前。 @publicationは sysname で、既定値はありません。

[ @article = ] N'article'

アーティクルの名前。 @articleは sysname で、既定値はありません。

[ @filtername = ] N'filtername'

フィルターの現在の名前。 @filternameは sysname で、既定値はありません。

[ @property = ] N'property'

変更するプロパティの名前。 @propertyは sysname で、既定値はありません。

[ @value = ] N'value'

対象となるプロパティの新しい値を指定します。 @valueは nvarchar(1000) で、既定値はありません。

次の表では、アーティクルのプロパティと、それらのプロパティの値について説明します。

プロパティ 説明
filter_type 1 結合フィルター。

このオプションは、SQL Server Compact サブスクライバーをサポートするために必要です。
2 論理レコードリレーションシップ。
3 結合フィルターは、論理レコードリレーションシップでもあります。
filtername フィルターの名前。
join_articlename 結合アーティクルの名前。
join_filterclause フィルター句。
join_unique_key true 結合は、一意なキーに基づいて行われます。
false 結合は一意キーではありません。

[ @force_invalidate_snapshot = ] force_invalidate_スナップショット

このストアド プロシージャによって実行されたアクションによって、既存のスナップショットが無効になる可能性があることを確認します。 @force_invalidate_スナップショットはビットで、既定値は 0.

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

  • 1は、マージ アーティクルを変更すると、スナップショットが無効になる可能性があり、新しいスナップショットを必要とする既存のサブスクリプションがある場合は、既存のスナップショットが古いとしてマークされ、新しいスナップショットが生成されるアクセス許可を付与します。

[ @force_reinit_subscription = ] force_reinit_subscription

このストアド プロシージャによって実行されるアクションで、既存のサブスクリプションの再初期化が必要になる可能性があることを確認します。 @force_reinit_subscriptionはビットで、既定値は 0.

  • 0 は、マージ アーティクルに対する変更によってサブスクリプションが再初期化されないように指定します。 変更によって既存のサブスクリプションの再初期化が必要であることがストアド プロシージャによって検出された場合、エラーが発生し、変更は行われません。

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

リターン コードの値

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

解説

sp_changemergefilter はマージ レプリケーションで使用されます。

マージ アーティクルのフィルターを変更するには、スナップショット (存在する場合) を再作成する必要があります。 これは、@force_invalidate_スナップショットを に1設定することによって実行されます。 この記事のサブスクリプションがある場合は、サブスクリプションを再初期化する必要があります。これは、@force_reinit_subscription1.

論理レコードを使用するには、パブリケーションとアーティクルが複数の要件を満たしている必要があります。 詳細については、「Group Changes to Related Rows with Logical Records」 (論理レコードによる関連行への変更のグループ化) を参照してください。

アクセス許可

sysadmin 固定サーバー ロールまたは固定データベース ロールdb_ownerメンバーのみが実行sp_changemergefilterできます。