本主題描述如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2014 中指定架構選項。 當您發行數據表或檢視表時,可以控制針對已發行物件複寫的物件建立選項。 您可以在建立發行項時設定這些選項,也可以在稍後加以變更。 如果您未明確指定文章的這些選項,則會定義預設選項集。
備註
使用復寫預存程式時的預設架構選項可能與使用 SQL Server Management Studio 新增發行項時的預設選項不同。
本主題內容
開始之前:
若要指定架構選項,請使用:
開始之前
限制與制約
- 如果您在建立發布之後變更架構選項,則必須產生新的快照。
建議
- 如需架構選項的完整清單,請參閱 sp_addarticle (Transact-SQL) 和 sp_addmergearticle (Transact-SQL) 的 @schema_option參數。
使用 SQL Server Management Studio
在 [發行項屬性 - <發行項>] 對話方塊的 [屬性] 索引標籤上,指定架構選項,例如是否要將約束和觸發器複製給訂閱者。 此索引標籤可在 [新增發行集精靈] 和 [ 發行集屬性 - <發行集> ] 對話框中取得。 如需使用精靈及存取對話方塊的詳細資訊,請參閱建立發行集和檢視及修改發行集屬性。
若要指定架構選項
在 [新增發行集精靈] 或 [發行集屬性 - <發行>集] 對話框的 [文章 頁面上,選取文章,然後按一下 [文章屬性]。
選擇應套用至下列項目的文章架構選項變更:
點擊 [ 設定所選取 <ObjectType> 文章的屬性 ] 可開啟 [ 文章屬性 - <ObjectName> ] 對話框;在此對話框中進行的屬性變更僅適用於 [ 文章 ] 頁面物件窗格中所選取的物件。
按一下 設定所有 <ObjectType> 發行項的屬性 以啟動 所有 <ObjectType> 發行項的屬性 對話框;此對話框中所做的屬性變更會套用至 [發行項] 頁面上物件窗格中該類型的所有物件,包括尚未選取發行的物件。
備註
[ 所有 <ObjectType> 發行項的屬性 ] 對話框中所做的屬性變更會覆寫先前在 [ 發行項屬性 - <ObjectName> ] 對話框中所做的任何變更。 例如,如果您想要為物件類型的所有發行項設定一些預設值,但也想要設定個別物件的某些屬性,請先設定所有發行項的預設值。 然後設定個別對象的屬性。
在 [發行項屬性 - <發行項>] 對話方塊之 [屬性] 索引標籤的 [將對象和設定複製到訂閱者] 和 [目的地物件] 區段中,指定選項的值。
必要時修改任何屬性,然後按一下 [確定] 。
如果您在 [ 發行集屬性 - <發行集> ] 對話框中,請按兩下 [ 確定 ] 儲存並關閉對話框。
使用 Transact-SQL
架構選項會指定為十六進位值,也就是 |(位元運算 OR) 一個或多個選項的結果。 如需詳細資訊,請參閱 sp_addarticle 和 sp_addmergearticle。
備註
您必須先將架構選項值從 二進位 轉換成 int ,才能執行位運算。 如需詳細資訊,請參閱 CAST 和 CONVERT (Transact-SQL)。
在為快照或交易出版物定義發行項時指定架構選項
- 在發行集資料庫的發行者上,執行 sp_addarticle。 指定@publication文章所屬發行集的名稱、@article文章的名稱、@source_object所發行的資料庫物件、@type的資料庫物件類型,以及 |(位元 OR)@schema_option的一或多個架構選項的結果。 如需詳細資訊,請參閱 定義發行項。
若要在定義合併發行的文章時指定架構選項
- 在發行集資料庫的發行者上,執行 sp_addmergearticle。 針對 @publication 指定文章所屬的發行出版物名稱,針對 @article 指定文章的名稱,針對 @source_object 指定正在發佈的資料庫物件,及 |(位 OR) 結果中的一個或多個架構選項 @schema_option。 如需詳細資訊,請參閱 定義發行項。
若要更改快照或交易出版物中現有文章的架構選項
在出版資料庫的出版者上,執行 sp_helparticle。 指定文章所屬的刊物名稱為 @publication,而文章的名稱為 @article。 請注意結果集中 schema_option 欄的值。
使用步驟一中的值與所需的架構選項值,執行&(位元 AND)運算,以判斷該選項是否已設定。
如果結果為 0,則不會設定 選項。
如果結果為選項值,則選項已經設定。
如果未設定選項,請使用步驟 1 中的值與所需的架構選項值執行 |(位元 OR) 運算。
在出版資料庫的發行者處,執行 sp_changearticle。 指定文章所屬的出版物名稱為 @publication,文章的名稱為 @article,schema_option 的值為 @property,以及步驟 3 的十六進制結果為 @value。
執行快照集代理程式以產生新的快照集。 如需詳細資訊,請參閱 建立和套用初始快照集。
若要變更合併發行中現有文章的結構選項
在發行者的發行集資料庫上,執行 sp_helpmergearticle。 指定文章所屬的出版物名稱 @publication ,以及文章的名稱 @article。 請注意結果集中 schema_option 欄位的值。
使用從步驟 1 得到的值與所需的架構選項值,執行 & (位元 AND) 操作,以確認該選項是否已設定。
如果結果為 0,則不會設定 選項。
如果結果為選項值,則選項已經設定。
如果未設定選項,請執行 |(位 OR) 使用步驟 1 中的值和所需的架構選項值來作業。
在發行集資料庫的發行者上,執行 sp_changemergearticle。 指定文章所屬的發行物名稱為 @publication,文章的名稱為 @article,@property 的 schema_option 值,以及步驟 3 的十六進制結果 @value。
執行快照集代理程式以產生新的快照集。 如需詳細資訊,請參閱 建立和套用初始快照集。