sp_changemergefilter (Transact-SQL)
適用対象: 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_snapshot
このストアド プロシージャによって実行されたアクションによって、既存のスナップショットが無効になる可能性があることを確認します。 @force_invalidate_snapshot は ビットで、既定値は 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
に設定することによって行われます。
論理レコードを使用するには、パブリケーションとアーティクルが複数の要件を満たしている必要があります。 詳細については、「Group Changes to Related Rows with Logical Records」 (論理レコードによる関連行への変更のグループ化) を参照してください。
アクセス許可
sysadmin固定サーバー ロールまたは固定データベース ロールdb_ownerのメンバーのみがsp_changemergefilter
を実行できます。