更改合并項目的屬性。此存儲過程在發(fā)布服務(wù)器的發(fā)布數(shù)據(jù)庫上執(zhí)行。
sp_changemergearticle [ @publication = ] 'publication'
,
[ @article = ] 'article'
[ , [ @property = ] 'property' ]
[ , [ @value = ] 'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[@publication =] 'publication'
是包含該項目的發(fā)布名。publication 的數(shù)據(jù)類型為 sysname,沒有默認設(shè)置。
[@article =] 'article'
是要更改的項目名。article 的數(shù)據(jù)類型為 sysname,沒有默認設(shè)置。
[@property =] 'property'
是要為給定項目和發(fā)布更改的屬性。property 的數(shù)據(jù)類型為 nvarchar(30),可以是表中所列值之一。
[@value =] 'value'
是用于指定的屬性的新值。value 的數(shù)據(jù)類型為 nvarchar(1000),可以是下表中所列值之一。
下表描述項目的屬性和這些屬性的值。
屬性 | 值 | 描述 |
---|---|---|
description | 項目的描述項。 | |
pre_creation_command | none:如果表已在訂閱服務(wù)器上存在,則不采取任何操作。 drop:根據(jù)子集篩選中的 WHERE 子句發(fā)出刪除命令。 delete:重新創(chuàng)建表之前先除去表。 truncate:與 delete 相同,但是刪除頁而非行。不要使用 WHERE 子句。 | 指定當應(yīng)用快照時如果表存在于訂閱服務(wù)器上則系統(tǒng)應(yīng)采取的操作。 |
creation_script | 用于創(chuàng)建目標表的項目架構(gòu)腳本的路徑和名稱。 | |
column_tracking | true 或 false | 列級跟蹤的設(shè)置。true 打開列級跟蹤。而 false 關(guān)閉列級跟蹤并在行級保留沖突檢測。如果表已在其它合并發(fā)布中發(fā)布,則列級跟蹤必須與基于該表的現(xiàn)有項目所使用的值相同。該參數(shù)只專用于表項目。 |
article_resolver | 項目的自定義沖突解決程序。 | |
resolver_info | 用作自定義沖突解決程序的存儲過程名。 | |
status | active 或 unsynced,或 | 項目狀態(tài)。如果是 active,則表示發(fā)布表的初始處理腳本已運行。如果是 unsynced,則表示發(fā)布表的初始處理腳本在下一次運行快照代理程序時運行。 |
subset_filterclause | 用于指定水平篩選的 WHERE 子句。 | |
schema_option | 0x00:禁止快照代理程序編寫腳本,并使用 creation_script 中提供的腳本。 0x01:生成對象創(chuàng)建(CREATE TABLE、CREATE PROCEDURE 等)。 0x10:生成對應(yīng)的聚集索引。 0x20:將用戶定義數(shù)據(jù)類型轉(zhuǎn)換為基本數(shù)據(jù)類型。 0x40:生成對應(yīng)的非聚集索引。 0x80:在主鍵上包含聲明引用完整性。 0x100:如果已定義,則復(fù)制表項目上的用戶觸發(fā)器。 0x200:復(fù)制外鍵約束。如果引用的表不是發(fā)布的一部分,則將不復(fù)制已發(fā)布表上的所有外鍵約束。 0x400:復(fù)制檢查約束。 0x800:復(fù)制默認值。 0x1000:復(fù)制列級排序規(guī)則。 0x2000:復(fù)制與已發(fā)布項目源對象關(guān)聯(lián)的擴展的屬性。 0x4000:如果在表項目上定義,則復(fù)制唯一鍵。 0x8000:使用 ALTER TABLE 語句將表項目上的主鍵和唯一鍵作為約束復(fù)制。 | 給定項目的架構(gòu)生成選項位圖。如果該值是 NULL,則系統(tǒng)將為該項目自動生成有效架構(gòu)選項。"注釋"中給出的表顯示基于項目類型和復(fù)制類型的組合而選擇的值。另外,并非所有的 @schema_option 值對每個復(fù)制類型和項目類型都有效。"注釋"中給出的"有效架構(gòu)選項"表顯示可基于項目類型和復(fù)制類型的組合進行選擇的有效架構(gòu)選項。 |
destination_owner | 訂閱數(shù)據(jù)庫中的對象所有者名稱(如果不是'dbo')。 | |
destination_object | 目的對象的新名稱,'' 或 NULL。如果是 NULL 或 '',則將重置該值,使之等同于項目的 source_object 屬性中的當前值。 僅對于合并存儲過程、視圖和 UDF 架構(gòu)項目有效。修改合并表項目的 destination_object 將導(dǎo)致錯誤。 | |
pub_identity_range | 如果項目將 auto_identity_range 設(shè)置為 true,則在發(fā)布服務(wù)器上的范圍大小。僅應(yīng)用于表項目。 | |
identity_range | 如果項目將 auto_identity_range 設(shè)置為 true,則為在訂閱服務(wù)器上的范圍大小。僅應(yīng)用于表項目。 | |
threshold | 控制合并代理程序何時指派新標識范圍的百分比值。如果使用了在閾值中指定的百分比值,合并代理程序?qū)?chuàng)建新的標識范圍。當 auto_identity_range 設(shè)置為 true時,使用該屬性。僅應(yīng)用于表項目。 | |
verify_resolver_signature | 0 或 1 | 指定在合并復(fù)制中使用沖突解決程序之前是否驗證數(shù)字簽名的 bit 值。值 0 指定不驗證簽名。值 1 指定將驗證簽名以查看簽名是否來自信任源。 |
allow_interactive_resolver | true 或 false | 在項目上啟用或禁用交互式?jīng)_突解決程序的 bit 值。true 值啟用在項目上使用交互式?jīng)_突解決程序;而 false 值禁用在項目上使用交互式?jīng)_突解決程序。 |
check_permissions | 0x00 值指定不會檢查權(quán)限。 0x10 值指定在可上載 INSERT(已在訂閱服務(wù)器上生成)之前,將在發(fā)布服務(wù)器上檢查權(quán)限。 0x20 值指定上載 UPDATE(已在訂閱服務(wù)器上生成)之前,將在發(fā)布服務(wù)器上檢查權(quán)限。 0x40 值指定上載 DELETE(已在訂閱服務(wù)器上生成)之前,將在發(fā)布服務(wù)器上檢查權(quán)限。 | 當合并代理程序?qū)⒏膽?yīng)用于發(fā)布服務(wù)器時將驗證表級權(quán)限的位圖。如果合并進程所使用的發(fā)布服務(wù)器登錄/用戶帳戶沒有正確的表權(quán)限,則將無效更改記錄為沖突。check_permissions 的數(shù)據(jù)類型為 int。 |
NULL(默認值) |
[@force_invalidate_snapshot = ] force_invalidate_snapshot
確認此存儲過程采取的操作可能使現(xiàn)有快照無效。force_invalidate_snapshot 的數(shù)據(jù)類型為 bit,默認設(shè)置為 0。0 指定對項目的更改不會導(dǎo)致快照無效。如果存儲過程檢測到更改確實需要新快照,則會發(fā)生錯誤,且不會進行任何更改。而 1 指定對項目所做的更改可能導(dǎo)致快照無效,而且如果現(xiàn)有訂閱需要新的快照,則提供適當?shù)臋?quán)限,使現(xiàn)有快照被標記為廢棄并生成新快照。
[@force_reinit_subscription = ] force_reinit_subscription
確認此存儲過程采取的操作可能要求現(xiàn)有的訂閱重新初始化。force_reinit_subscription 的數(shù)據(jù)類型為 bit,默認設(shè)置為 0。0 指定對合并項目的更改不會導(dǎo)致訂閱重新初始化。如果存儲過程檢測到更改需要重新初始化訂閱,則會發(fā)生錯誤,且不會進行任何更改。而 1 指定對合并項目的更改將導(dǎo)致現(xiàn)有的訂閱重新初始化,并提供使訂閱重新初始化發(fā)生的權(quán)限。
0(成功)或 1(失?。?/P>
sp_changemergearticle 用于合并復(fù)制。
該表描述如果用戶傳遞的是 NULL 值,則為存儲過程選擇的 @schema_option 默認值。默認值基于表的第一行中顯示的復(fù)制類型和第一列中顯示的項目類型??諉卧硎緹o效的項目類型和復(fù)制類型組合,因而沒有默認值。
項目類型 | 復(fù)制類型 |
---|---|
合并 | |
logbased | |
logbased manualfilter | |
logbased manualview | |
indexed view logbased | |
indexed view logbased manualfilter | |
indexed view logbased manualview | |
indexed view logbase manualboth | |
proc exec | |
serialized proc exec | |
proc schema only | 0x01 |
view schema only | 0x01 |
func schema only | 0x01 |
indexed view schema only | 0x01 |
table | 0xCFF1 |
有效架構(gòu)選項表
項目類型 | 復(fù)制類型 |
---|---|
合并 | |
logbased | |
logbased manualfilter | |
logbased manualview | |
indexed view logbased | |
indexed view logbased manualfilter | |
indexed view logbased manualview | |
indexed view logbase manualboth | |
proc exec | 0x01 和 0x2000 |
serialized proc exec | 0x01 和 0x2000 |
proc schema only | 0x01 和 0x2000 |
view schema only | 0x01、0x0100 和 0x2000 |
func schema only | 0x01 和 0x2000 |
indexed view schema only | 0x01、0x10、0x040、0x0100 和 0x2000 |
table | 除 0x02 和 0x8000 外的所有選項 |
只有 sysadmin 固定服務(wù)器角色成員或 db_owner 固定數(shù)據(jù)庫角色成員才能執(zhí)行 sp_changemergearticle。
相關(guān)文章