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


Фильтрация строк таблицы

Страница Фильтрация строк таблицы позволяет следующее.

  • Применить статические строковые фильтры к статьям таблиц в моментальном снимке, в публикациях транзакций и в публикациях слиянием.

  • Применить параметризованные фильтры строк к статьям таблиц в публикациях слиянием.

  • Использовать фильтры соединения для расширения фильтрации статей объединенных таблиц на относящиеся к ним статьи таблиц.

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

Для максимальной производительности приложения и снижения объема внешнего хранилища, а также для ограничения доступа к некоторым данным для отдельных подписчиков следует публиковать только необходимые данные. Публикация может содержать как отфильтрованные, так и нефильтрованные таблицы. Например, можно включить полную (нефильтрованную) таблицу со сведениями о продукции компании и использовать фильтры строк для получения отфильтрованной таблицы заказчиков из определенного региона. С помощью применения фильтров к опубликованным данным можно сделать следующее:

  • Минимизировать объем данных, передаваемых по сети.

  • Снизить необходимый подписчику объем для хранения.

  • Настраивать публикации и приложения на основе индивидуальных требований подписчиков.

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

  • Избежать передачи конфиденциальных данных. Фильтры строк и фильтры столбцов могут быть использованы для ограничения доступа подписчика к данным. При репликации слиянием может возникать проблема безопасности, если используется параметризованный фильтр, содержащий HOST_NAME(). Дополнительные сведения см. в подразделе «Фильтрация с использованием HOST_NAME()» раздела Параметризованные фильтры строк.

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

Параметры

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

  • Добавить
    Нажмите Добавить, чтобы открыть диалоговое окно фильтрации статей таблицы. Нажмите Добавить для вызова диалогового окна моментального снимка или публикации транзакций. Нажмите Добавить для публикации слиянием, чтобы вывести три варианта выбора: Добавить фильтр; Добавить соединение для расширения выбранного фильтра; Автоматически создать фильтры.

    • Выбрать Добавить фильтр для запуска диалогового окна Добавить фильтр. Это диалоговое окно позволяет применять фильтры строк к статье таблицы. В диалоговом окне Добавить фильтр можно, например, указать, что таблица с данными о клиентах должна содержать данные только о французских клиентах при репликации подписчикам.

    • Выберите пункт Добавить соединение для расширения выбранного фильтра для перехода в диалоговое окно Добавление соединения. Диалоговое окно Добавление соединения позволяет расширить фильтр строк таким образом, чтобы он фильтровал данные в таблицах, связанных с таблицей с фильтром строк. Например, если фильтр таблицы заказчиков установлен таким образом, что таблица содержит данные только о французских заказчиках, а также есть связанная с ней таблица клиентских заказов, то можно задать соединение между этими двумя таблицами, чтобы таблица заказов содержала только заказы от французских заказчиков.

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

      Этот параметр доступен, только если сначала выбрать базовую таблицу соединения на панели фильтров.

    • Выберите Автоматически создать фильтры для запуска диалогового окна Создать фильтры. Это диалоговое окно позволяет указать в публикации слиянием фильтр строк для одной таблицы, который репликация автоматически распространяет на другие таблицы, связанные через внешние ключи. Например, публикация может содержать три таблицы: таблицу о клиентах, таблицу заказов (с внешним ключом к таблице клиентов), таблицу сведений о заказах (с внешним ключом к таблице заказов). Определите фильтр строк для таблицы о клиентах, и репликация распространит его на остальные таблицы.

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

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

  • Изменить
    Выберите фильтр строк или фильтр соединения на панели фильтров и нажмите кнопку Изменить для запуска диалогового окна Изменение фильтра или Изменение соединения.

  • Удалить
    Выберите фильтр строк или фильтр соединения на панели фильтров и щелкните Удалить для его удаления.

  • Найти таблицу
    Публикации слиянием только с фильтрами соединения. Нажмите Найти таблицу для поиска таблицы в сложном дереве фильтров. В базе данных со сложными связями таблица может быть соединена с несколькими таблицами, поэтому она может отображаться несколько раз в дереве фильтров.

    Реальная таблица показана только в одном месте дерева, в других местах она представлена ярлыком. Ярлык таблицы является только ссылкой на нее, и дочерние узлы таблицы не отображаются. Узел ярлыка помечен с помощью стрелки, при разворачивании узла будет отображен текст Чтобы увидеть таблицу для <имя_таблицы>, нажмите кнопку «Найти таблицу».

    Выберите узел ярлыка в этой панели и щелкните Найти таблицу. Панель развернется, и данная таблица будет выделена. Если нажать кнопку Найти таблицу без указания узла ярлыка, открывается диалоговое окно Поиск таблицы.

  • Фильтр
    Содержит определение на языке Transact-SQL для фильтра, выбранного на панели фильтров.