次の方法で共有


sp_changemergefilter (Transact-SQL)

適用対象: SQL サーバー

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

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'

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

[ @article = ] N'article'

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

[ @filtername = ] N'filtername'

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

[ @property = ] N'property'

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

[ @value = ] N'value'

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

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

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

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

[ @force_invalidate_snapshot = ] force_invalidate_snapshot

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

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

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

[ @force_reinit_subscription = ] force_reinit_subscription

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

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

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

リターン コードの値

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

解説

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

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

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

アクセス許可

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