Поделиться через


Как определить и изменить фильтр соединения между статьями публикации слиянием (среда SQL Server Management Studio)

Задать, изменить и удалить фильтры соединения на странице Фильтрация строк таблицы мастера создания публикаций или на странице Фильтрация строк диалогового окна Свойства публикации — <публикация>. Дополнительные сведения об использовании этого мастера и о доступе к этому диалоговому окну см. в разделах Как создать публикацию и определить статьи (среда SQL Server Management Studio) и Как просмотреть и изменить свойства публикации и статьи (среда SQL Server Management Studio).

ms152744.note(ru-ru,SQL.90).gifПримечание.
При создании, изменении или удалении фильтра соединения в диалоговом окне Свойства публикации — <публикация> после того, как были инициализированы подписки на публикацию, необходимо создать новый моментальный снимок и повторно инициализировать все подписки после произведения изменений. Дополнительные сведения о требованиях к изменениям свойств см. в разделе Изменение свойств публикации и статей.

Фильтры соединения можно создать вручную для набора таблиц, или же репликация может создать эти фильтры автоматически, основываясь на связях между внешними ключами и первичными ключами, заданных в таблицах. Дополнительные сведения об автоматическом создании фильтров соединения см. в разделе Как автоматически сформировать набор фильтров соединения между статьями публикаций слиянием (среда SQL Server Management Studio).

Определение фильтра соединения

  1. На странице Фильтрация строк таблицы в мастере создания публикаций или на странице Фильтрация строк диалогового окна Свойства публикации — <публикация> выберите существующий фильтр строк или фильтр соединения на панели Отфильтрованные таблицы.

    Фильтр соединения расширяет фильтр строк; поэтому следует задать фильтр строк до того, как можно будет расширять фильтр объединением. После того как будет определен один фильтр соединения, его можно расширить еще одним фильтром соединения.

  2. Щелкните Добавить и выберите Добавить соединение для расширения выбранного фильтра....

  3. Создайте инструкцию объединения: выберите либо Использовать построитель для создания инструкции, либо Создать инструкцию объединения вручную.

    • При использовании построителя для создания инструкции соединения используйте столбцы в сетке (сопряжение, столбец отфильтрованной таблицы, оператор и столбец соединяемой таблицы).
      Каждый столбец сетки содержит раскрывающееся поле со списком, позволяющее выбрать два столбца и оператор (=, <>, <=, <, >=,>, и like). Результаты выводятся в области Предварительный просмотр. Если в соединении участвует более двух столбцов, выберите логику (AND или OR) из столбца Сопряжение, а затем введите еще два столбца и оператор.

    • Если нужно написать инструкцию вручную, введите его в поле Инструкция соединения. Используйте списки Столбцы фильтруемой таблицы и Столбцы соединяемой таблицы, перетягивая из них поля в текстовое поле Инструкция соединения.

    • Полная инструкция объединения будет выглядеть таким образом:

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

      В предложении JOIN необходимо использовать имена, состоящие их двух частей; имена, состоящие из трех и четырех частей не поддерживаются.

  4. Задайте параметры объединения.

    • Если столбец, по которому производится объединение в отфильтрованной таблице (родительской таблице), уникален, выберите Уникальный ключ.
      ms152744.Caution(ru-ru,SQL.90).gifВнимание!
      Выбор этого параметра указывает, что связи между дочерней и родительской таблицей в фильтре соединения – «один к одному» или «один ко многим». Устанавливайте этот параметр, лишь если на объединяющий столбец в дочерней таблице наложено ограничение, гарантирующее уникальность. Если параметр задан неправильно, может произойти потеря целостности данных.
    • По умолчанию во время синхронизации процессы репликации слиянием изменяются в зависимости от строк. Чтобы в строках и фильтруемой, и присоединенной таблицы присутствовали связанные изменения, и присоединенная таблица функционировала бы как целое, выберите Логическая запись (только MicrosoftSQL Server 2005 и более поздние версии). Этот параметр доступен, только если удовлетворяются требования статьи и публикации на использование логических записей. Дополнительные сведения см. в подразделе «Вопросы использования логических записей» раздела Изменения группирования связанных строк с логическими записями.
  5. Нажмите кнопку ОК.

  6. В диалоговом окне Свойства публикации — <публикация> нажмите кнопку ОК, чтобы сохранить результаты и закрыть диалоговое окно.

Изменение фильтра соединения

  1. На странице Фильтрация строк таблицы в мастере создания публикаций или на странице Фильтрация строкСвойства публикации — <публикация> выберите панель Отфильтрованные таблицы и щелкните Изменить.

  2. В окне Изменить соединение измените фильтр.

  3. Нажмите кнопку ОК.

Удаление фильтра соединения

  1. На странице Фильтрация строк таблицы в мастере создания публикаций или на странице Фильтрация строкСвойства публикации — <публикация> выберите фильтр на панели Отфильтрованные таблицы и щелкните Удалить. Если удаляемый фильтр соединения расширен за счет других фильтров, последние также будут удалены.

См. также

Задачи

Как определить связь логических записей между табличными статьями слияния (среда 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