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


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

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

ПримечаниеПримечание

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

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

Автоматическое создание набора фильтров соединения между статьями публикаций слиянием

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

    ПримечаниеПримечание

    При автоматическом создании фильтров из публикации удаляются любые существующие фильтры строк и фильтры соединения. Фильтры можно добавить вручную после автоматического создания набора фильтров.

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

    1. Выберите таблицу для фильтрации в раскрывающемся списке.

    2. Создайте инструкцию фильтра в текстовом поле Инструкция фильтра. Можно ввести текст в текстовом поле или перетащить столбцы из списка Столбцы.

      Текстовая область Инструкция фильтра содержит текст по умолчанию в виде:

      SELECT <published_columns> FROM [tableowner].[tablename] WHERE
      

      Текст по умолчанию изменять нельзя. Введите предложение фильтра для статического или параметризованного фильтра строк после ключевого слова WHERE, используя стандартный синтаксис SQL. Полное предложение фильтра для параметризованного фильтра строк должно иметь вид:

      SELECT <published_columns> FROM [HumanResources].[Employee] WHERE LoginID = SUSER_SNAME()
      

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

    3. Укажите параметры фильтра.

      Выберите параметр, который соответствует способу распределения данных между подписчиками: Строка из этой таблицы отправляется нескольким подпискам или Строка из этой таблицы отправляется только одной подписке. Если вы выберите Строка из этой таблицы отправляется только одной подписке, производительность репликации слиянием будет оптимизирована путем уменьшения объема хранимых и обрабатываемых метаданных. Однако убедитесь в том, что данные секционированы таким образом, что одна строка не может быть реплицирована более чем одному подписчику. Дополнительные сведения см. в подразделе «Настройка параметров секционирования» раздела Параметризованные фильтры строк.

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

    Производится синтаксический анализ и выполнение заданного фильтра для таблицы, указанной в предложении SELECT. Если оператор фильтра содержит синтаксические ошибки или встречаются другие проблемы, пользователь уведомляется и сможет отредактировать эту инструкцию фильтра.

    После синтаксического анализа инструкции система репликации создает необходимые фильтры соединения и показывает их на панели Отфильтрованные таблицы: таблицы на страницах Фильтрация строк таблицы или Фильтрация строк. Если фильтры формируются в мастере создания публикаций, а распространитель для издателя, для которого выполняется мастер, еще не настроен, появляется подсказка о необходимости настроить распространитель.

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

Изменение автоматически созданного фильтра

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

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

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

Удаление автоматически созданного фильтра

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