指定 SQL Server 複寫的結構描述選項

適用於:SQL ServerAzure SQL 受控執行個體

本文說明如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中指定結構描述選項。 當您發行資料表或檢視表時,您可以控制針對發行之物件複寫的物件建立選項。 您可以在建立發行項時設定這些選項,而且也可以在之後變更這些選項。 如果您不明確針對發行項指定這些選項,將會定義一組預設選項。

注意

使用複寫預存程序時的預設結構描述選項,可能會與使用 SQL Server Management Studio 加入發行項時的預設選項不同。

本主題內容

開始之前

限制事項

  • 如果在建立發行集之後變更結構描述選項,則必須產生新的快照。

建議

使用 SQL Server Management Studio

在 [發行項屬性 - <發行項>] 對話方塊的 [屬性] 索引標籤上,指定結構描述選項,例如是否將條件約束與觸發程序複製到訂閱者。 新增發行集精靈與 [發行集屬性 - <發行集>] 對話方塊中都有提供此索引標籤。 如需使用精靈及存取對話方塊的詳細資訊,請參閱建立發行集檢視及修改發行集屬性

若要指定結構描述選項

  1. 在新增發行集精靈的 [發行項] 頁面上,或是在 [發行集屬性 - <發行集>>] 對話方塊中,選取一個發行項,然後按一下 [發行項屬性]。

  2. 選取哪些結構描述選項變更應套用至:

    • 按一下 [設定反白顯示 <物件類型> 發行項的屬性] 啟動 [發行項屬性 - <物件名稱>] 對話方塊;在這個對話方塊中所做的屬性變更,只會套用至 [發行項] 頁面的物件窗格中反白顯示的物件。

    • 按一下 [設定所有 <物件類型> 發行項的屬性] 啟動 [所有 <物件類型> 發行項的屬性] 對話方塊;在這個對話方塊中所做的屬性變更,會套用至 [發行項] 頁面的物件窗格中屬於該類型的所有物件,包括尚未選取發行的物件。

      注意

      [所有 <物件類型> 發行項的屬性] 對話方塊中所做的屬性變更,會覆寫之前在 [發行項屬性 - <物件名稱>] 對話方塊中所做的任何變更。 例如,若要設定所有屬於某物件類型之發行項的一些預設值,但同時要設定個別物件的某些屬性,則請先設定所有發行項的預設值, 然後再設定個別物件的屬性。

  3. 在 [發行項屬性 - <發行項>] 對話方塊之 [屬性] 索引標籤的 [將物件與設定複製到訂閱者] 與 [目的地物件] 區段中,指定選項的值。

  4. 必要時修改任何屬性,然後按一下 [確定]

  5. 如果您在 [發行集屬性 - <發行集>] 對話方塊中,請按一下 [確定] 以儲存並關閉對話方塊。

使用 TRANSACT-SQL

結構描述選項會指定為十六進位值,這個值是一個或多個選項的 | (Bitwise OR) 結果。 如需詳細資訊,請參閱< sp_addarticle >和< sp_addmergearticle>。

注意

在執行位元運算之前,您必須將結構描述選項值從 binary 轉換成 int 。 如需詳細資訊,請參閱 CAST 和 CONVERT (Transact-SQL)

在針對快照式或交易式發行集定義發行項時,指定結構描述選項

  1. 在發行集資料庫的發行者上,執行 sp_addarticle。 針對 @publication 指定發行項所屬的發行集名稱、針對 @article 指定發行項名稱、針對 @source_object 指定發行的資料庫物件、針對 @type 指定資料庫物件的類型,並針對 @schema_option 指定一或多個結構描述選項的 | (Bitwise OR) 結果。 如需詳細資訊,請參閱 定義發行項

在針對合併式發行集定義發行項時,指定結構描述選項

  1. 在發行集資料庫的發行者上,執行 sp_addmergearticle。 針對 @publication 指定發行項所屬的發行集名稱、針對 @article 指定發行項名稱、針對 @source_object 指定發行的資料庫物件、並針對 @schema_option 指定一或多個結構描述選項的 | (Bitwise OR) 結果。 如需詳細資訊,請參閱 定義發行項

針對快照式或交易式發行集中的現有發行項變更結構描述選項

  1. 在發行集資料庫的發行者上,執行 sp_helparticle。 針對 @publication 指定發行項所屬的發行集名稱,並針對 @article 指定發行項名稱。 請記下結果集中 schema_option 資料行的值。

  2. 請使用步驟 1 中的值及所需結構描述選項值,執行 & (Bitwise AND) 作業以判斷是否選項已設定。

    • 如果結果是 0,表示未設定此選項。

    • 如果結果是此選項值,表示已設定此選項。

  3. 如果未設定此選項,請使用步驟 1 中的值及所要的結構描述選項值來執行 | (Bitwise OR) 運算。

  4. 在發行集資料庫的發行者上,執行 sp_changearticle。 針對 @publication 指定發行項所屬的發行集名稱、針對 @article 指定發行項名稱、針對 @property 指定 schema_option 的值,並針對 @value 指定步驟 3 中的十六進位結果。

  5. 執行快照集代理程式來產生新的快照集。 如需詳細資訊,請參閱 建立和套用初始快照集

變更合併發行中現有發行項的結構描述選項

  1. 在發行集資料庫的發行者上,執行 sp_helpmergearticle。 針對 @publication 指定發行項所屬的發行集名稱,並針對 @article 指定發行項名稱。 請記下結果集中 schema_option 資料行的值。

  2. 請使用步驟 1 中的值及所需結構描述選項值,執行 & (Bitwise AND) 作業以判斷是否選項已設定。

    • 如果結果是 0,表示未設定此選項。

    • 如果結果是此選項值,表示已設定此選項。

  3. 如果未設定此選項,請使用步驟 1 中的值及所要的結構描述選項值來執行 | (Bitwise OR) 運算。

  4. 在發行集資料庫的發行者上,執行 sp_changemergearticle。 針對 @publication 指定發行項所屬的發行集名稱、針對 @article 指定發行項名稱、針對 @property 指定 schema_option 的值,並針對 @value 指定步驟 3 中的十六進位結果。

  5. 執行快照集代理程式來產生新的快照集。 如需詳細資訊,請參閱 建立和套用初始快照集

另請參閱

發行資料和資料庫物件
Article Options for Transactional Replication