Как определить и изменить параметризованный фильтр строк для статьи слияния (среда SQL Server Management Studio)

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

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

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

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

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

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

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

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

      SELECT <published_columns> FROM [tableowner].[tablename] WHERE
      
    • Текст по умолчанию изменять нельзя. Введите предложение фильтра после ключевого слова WHERE, используя стандартный синтаксис SQL. Параметризованный фильтр включает вызов функции системы HOST_NAME() и/или SUSER_SNAME() либо пользовательской функции, которая ссылается на одну или обе эти функции. Ниже приведен пример полного выражения для параметризованного фильтра строк:

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

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

      Важное примечаниеВажно!

      Для сохранения высокой производительности не рекомендуется применять функции к именам столбцов в предложениях параметризованных фильтров строк, таких как LEFT([MyColumn]) = SUSER_SNAME(). Если в предложении фильтра используется HOST_NAME и переопределяется значение HOST_NAME, может оказаться необходимым преобразовать типы данных с помощью инструкции CONVERT. Дополнительные сведения см. в подразделе «Переопределение значения HOST_NAME()» раздела Параметризованные фильтры строк.

  4. Выберите параметр, который соответствует способу совместного использования данных подписчиками:

    • Строка из этой таблицы будет отправлена нескольким подпискам

    • Строка из этой таблицы будет отправлена только одной подписке

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

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

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

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

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

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

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

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

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