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
結合フィルタ。
このオプションは、 Microsoft SQL Server 2005 Compact Edition サブスクライバをサポートするときに必要になります。
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 は、マージ アーティクルの変更によって既存のサブスクリプションが再初期化されることを示し、サブスクリプションの再初期化を許可します。
解説
sp_changemergefilter は、マージ レプリケーションで使用します。
スナップショットがある場合は、マージ アーティクルのフィルタを変更すると、スナップショットの再作成が必要になります。これを行うには、@force_invalidate_snapshot を 1 に設定します。また、このアーティクルに対するサブスクリプションがある場合、サブスクリプションの再初期化が必要になります。これを行うには、@force_reinit_subscription を 1 に設定します。
論理レコードを使用するには、パブリケーションとアーティクルが多くの要件を満たしている必要があります。詳細については、「論理レコードによる関連行への変更のグループ化」を参照してください。
権限
sp_changemergefilter を実行できるのは、sysadmin 固定サーバー ロールまたは db_owner 固定データベース ロールのメンバだけです。
戻り値
0 (成功) または 1 (失敗)
参照
関連項目
sp_addmergefilter (Transact-SQL)
sp_dropmergefilter (Transact-SQL)
sp_helpmergefilter (Transact-SQL)
システム ストアド プロシージャ (Transact-SQL)