sp_changemergefilter (Transact-SQL)
一部のマージ フィルター プロパティを変更します。 このストアド プロシージャは、パブリッシャー側でパブリケーション データベースについて実行されます。
構文
sp_changemergefilter [ @publication= ] 'publication'
, [ @article= ] 'article'
, [ @filtername= ] 'filtername'
, [ @property= ] 'property'
, [ @value= ] 'value'
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
引数
[ @publication= ] 'publication'
パブリケーションの名前です。 publication のデータ型は sysname で、既定値はありません。[ @article= ] 'article'
アーティクルの名前を指定します。 article のデータ型は sysname で、既定値はありません。[ @filtername= ] 'filtername'
フィルターの現在の名前を指定します。 filtername のデータ型は sysname で、既定値はありません。[ @property= ] 'property'
変更するプロパティの名前を指定します。 property のデータ型は sysname で、既定値はありません。[ @value=] '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_snapshot
このストアド プロシージャが実行する操作によって既存のスナップショットが無効になることを許可します。 force_invalidate_snapshot のデータ型は bit で、既定値は 0 です。0 に設定すると、マージ アーティクルへの変更によってスナップショットが無効になることはありません。 ストアド プロシージャで、変更に新しいスナップショットが必要であることが検出されると、エラーが発生し、変更は加えられません。
1 に設定すると、マージ アーティクルの変更によってスナップショットが無効になることがあります。また、新しいスナップショットを必要とする既存のサブスクリプションがある場合は、既存のスナップショットに古いスナップショットのマークを付けて、新しいスナップショットを生成することができます。
[ @force_reinit_subscription = ] force_reinit_subscription
このストアド プロシージャが実行する操作によって、既存のサブスクリプションの再初期化が必要になることを許可します。 force_reinit_subscription のデータ型は bit で、既定値は 0 です。0 に設定すると、マージ アーティクルへの変更によってサブスクリプションが再初期化されることはありません。 ストアド プロシージャで、変更に既存のサブスクリプションの再初期化が必要であることが検出されると、エラーが発生し、変更は加えられません。
1 は、マージ アーティクルの変更によって既存のサブスクリプションが再初期化されることを示し、サブスクリプションの再初期化を許可します。
戻り値
0 (成功) または 1 (失敗)
説明
sp_changemergefilter は、マージ レプリケーションで使用します。
スナップショットがある場合は、マージ アーティクルのフィルターを変更すると、スナップショットの再作成が必要になります。 これを行うには、@force_invalidate_snapshot を 1 に設定します。 また、このアーティクルに対するサブスクリプションがある場合、サブスクリプションの再初期化が必要になります。 これを行うには、@force_reinit_subscription を 1 に設定します。
論理レコードを使用するには、パブリケーションとアーティクルが多くの要件を満たしている必要があります。 詳細については、「論理レコードによる関連行への変更のグループ化」を参照してください。
権限
sp_changemergefilter を実行できるのは、sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバーだけです。
関連項目
参照
sp_addmergefilter (Transact-SQL)
sp_dropmergefilter (Transact-SQL)
sp_helpmergefilter (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)