Share via


如何:定義和修改合併發行項之間的聯結篩選 (SQL Server Management Studio)

在「新增發行集精靈」的 [篩選資料表的資料列] 頁面中,或在 [發行集屬性 - <Publication>] 對話方塊的 [篩選資料列] 頁面中,定義、修改和刪除聯結篩選。如需有關使用精靈與存取對話方塊的詳細資訊,請參閱<如何:建立發行集並定義發行項 (SQL Server Management Studio)>與<如何:檢視和修改發行集與發行項屬性 (SQL Server Management Studio)>。

ms152744.note(zh-tw,SQL.90).gif附註:
如果您在初始化發行集訂閱後在 [發行集屬性 - <Publication>] 對話方塊中新增、修改或刪除聯結篩選,則必須在進行變更後產生新的快照集並重新初始化所有訂閱。如需屬性變更需求的資訊,請參閱<變更發行集與發行項屬性>。

可以為一組資料表手動建立聯結篩選,或者根據資料表中定義的外部索引鍵與主索引鍵之間的關聯性自動產生篩選。如需自動產生一組聯結篩選的詳細資訊,請參閱<如何:在合併發行項之間自動產生一組聯結篩選 (SQL Server Management Studio)>。

若要定義聯結篩選

  1. 在「新增發行集精靈」的 [篩選資料表的資料列] 頁面中,或在 [發行集屬性 - <Publication>][篩選資料列] 頁面中,於 [已篩選的資料表] 窗格中選取現有的資料列篩選或聯結篩選。

    聯結篩選會擴充資料列篩選;因此您必須先定義資料列篩選,然後才可利用聯結擴充篩選。定義好一個聯結篩選後,您可以以另一個聯結篩選擴充這個聯結篩選。

  2. 按一下 [加入],然後按一下 [加入聯結以擴充選取的篩選]

  3. 建立聯結陳述式:選取 [使用產生器建立陳述式][手動寫入 join 陳述式]

    • 如果選取使用產生器,請使用方格中的資料行 ([結合][已篩選的資料表資料行][運算子][聯結的資料表資料行]) 來建立聯結陳述式。
      方格中的每個資料行均包含一個下拉式方塊,可讓您選取兩個資料行與一個運算子 ([=][<>][<=][<][>=][>][類似])。結果顯示在 [預覽] 文字區域。如果聯結涉及多對資料行,請從 [結合] 資料行中選取一個結合 (AND 或 OR),然後輸入兩個或更多的資料行及一個運算子。

    • 如果選取手動寫入陳述式,請在 [Join 陳述式] 文字區域寫入聯結陳述式。使用 [已篩選的資料表資料行] 清單方塊與 [聯結的資料表資料行] 清單方塊將資料行拖放到 [Join 陳述式] 文字區域。

    • 完整的聯結陳述式應類似於:

      SELECT <published_columns> FROM [Sales].[SalesOrderHeader] INNER JOIN [Sales].[SalesOrderDetail] ON [SalesOrderHeader].[SalesOrderID] = [SalesOrderDetail].[SalesOrderID]
      

      JOIN 子句應該使用兩段式命名;不支援三段式和四段式命名。

  4. 指定聯結選項:

    • 如果在篩選的資料表 (父系資料表) 中聯結的資料行是唯一的,請選擇 [唯一索引鍵]
      ms152744.Caution(zh-tw,SQL.90).gif注意:
      選取此選項表示聯結篩選中子系資料表與父系資料表之間的關聯性是一對一或一對多。如果在子系資料表中的聯結資料行有保證唯一性的條件約束,請僅選取此選項。如果選項設定不正確,則資料可能發生非聚合的情況。
    • 依預設,合併式複寫在同步處理過程會按逐個資料列的方式處理變更。若要將篩選資料表及聯結資料表之資料列中的相關變更作為一個單位進行處理,請選取 [邏輯記錄] (僅限於 Microsoft SQL Server 2005 及更新版本)。此選項僅在發行項與發行集之使用邏輯記錄的要求均符合時才可用。如需詳細資訊,請參閱<使用邏輯記錄分組相關資料列的變更>中的「使用邏輯記錄的考量」一節。
  5. 按一下 [確定]。

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

若要修改聯結篩選

  1. 在新增發行集精靈的 [篩選資料表的資料列] 頁面,或者 [發行集屬性 - <Publication>][篩選資料列] 頁面上,選取 [已篩選的資料表] 窗格中的篩選,然後按一下 [編輯]

  2. [編輯聯結] 對話方塊中,修改篩選。

  3. 按一下 [確定]。

若要刪除聯結篩選

  1. 在新增發行集精靈的 [篩選資料表的資料列] 頁面,或者 [發行集屬性 - <Publication>][篩選資料列] 頁面上,選取 [已篩選的資料表] 窗格中的篩選,然後按一下 [刪除]。如果您刪除的聯結篩選本身已由其他聯結擴充,也會一併刪除這些聯結。

請參閱

工作

如何:定義合併資料表發行項之間的邏輯記錄關聯性 (SQL Server Management Studio)
如何:定義和修改合併發行項的參數化資料列篩選 (SQL Server Management Studio)
如何:定義和修改靜態資料列篩選 (SQL Server Management Studio)
如何:重新初始化訂閱 (SQL Server Management Studio)

概念

聯結篩選
參數化資料列篩選

其他資源

How to: Define and Modify a Join Filter Between Merge Articles (Replication Transact-SQL Programming)

說明及資訊

取得 SQL Server 2005 協助