sp_changemergefilter (Transact-SQL)
適用於:SQL Server
變更一些合併篩選屬性。 這個預存程式會在發行集資料庫的發行者端執行。
語法
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),沒有預設值。
下表描述發行項的屬性,以及這些屬性的值。
屬性 | 數值 | Description |
---|---|---|
filter_type |
1 |
聯結篩選。 需要此選項才能支援 SQL Server Compact Subscribers。 |
2 |
邏輯記錄關聯性。 | |
3 |
聯結篩選也是邏輯記錄關聯性。 | |
filtername |
篩選的名稱。 | |
join_articlename |
聯結發行項的名稱。 | |
join_filterclause |
Filter 子句。 | |
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
來完成。
若要使用邏輯記錄,發行集和發行項必須符合數個需求。 如需詳細資訊,請參閱使用邏輯記錄分組相關資料列的變更。
權限
只有系統管理員固定伺服器角色或db_owner固定資料庫角色的成員才能執行 sp_changemergefilter
。