Как определить и изменить параметризованный фильтр строк для статьи слияния (среда SQL Server Management Studio)
Определение, изменение и удаление параметризованных фильтров строк выполняется на странице Фильтрация строк таблицы мастера создания публикаций или на странице Фильтрация строк диалогового окна Свойства публикации — <публикация>. Дополнительные сведения об использовании этого мастера и о доступе к этому диалоговому окну см. в разделах Как создать публикацию и определить статьи (среда SQL Server Management Studio) и Как просмотреть и изменить свойства публикации и статьи (среда SQL Server Management Studio).
Примечание. |
---|
При добавлении, изменении или удалении параметризованного фильтра строк в диалоговом окне Свойства публикации — <публикация> после инициализации подписок на публикацию необходимо сформировать новый моментальный снимок и повторно инициализировать все подписки после внесения изменения. Дополнительные сведения о требованиях к изменениям свойств см. в разделе Изменение свойств публикации и статей. |
Определение параметризованного фильтра строк
На странице Фильтрация строк таблицы мастера создания публикаций или на странице Фильтрация строк диалогового окна Свойства публикации — <публикация> нажмите кнопку Добавить, а затем щелкните Добавить фильтр.
В окне Добавление фильтра выберите в раскрывающемся списке таблицу для фильтрации.
Создайте инструкцию фильтра в текстовом поле Инструкция фильтра. Можно ввести текст в тестовом поле или перетащить столбцы из списка Столбцы.
Текстовая область Инструкция фильтра содержит текст по умолчанию, в виде:
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()» раздела Параметризованные фильтры строк.
Выберите параметр, который соответствует способу совместного использования данных подписчиками:
- Строка из этой таблицы будет отправлена нескольким подпискам
- Строка из этой таблицы будет отправлена только одной подписке
Если выбрана настройка Строка из этой таблицы будет отправлена только одной подписке, производительность репликации слиянием будет оптимизирована путем уменьшения объема хранимых и обрабатываемых метаданных. Однако следует убедиться, что данные секционированы таким образом, что одна строка не может быть реплицирована более чем одному подписчику. Дополнительные сведения см. в подразделе «Настройка параметров секционирования» раздела Параметризованные фильтры строк.
Нажмите кнопку ОК.
В диалоговом окне Свойства публикации — <публикация> нажмите кнопку ОК, чтобы сохранить результаты и закрыть диалоговое окно.
Изменение параметризованного фильтра строк
На странице Фильтрация строк таблицы в мастере создания публикации или на странице Фильтрация строкСвойства публикации — <публикация> выберите панель Отфильтрованные таблицы и щелкните Изменить.
В окне Изменение фильтра измените фильтр.
Нажмите кнопку ОК.
Удаление параметризованного фильтра строк
- На странице Фильтрация строк таблицы мастера создания публикаций или на странице Фильтрация строк диалогового окна Свойства публикации — <публикация> выберите фильтр в области Отфильтрованные таблицы и щелкните Удалить.
См. также
Основные понятия
Фильтры соединения
Параметризованные фильтры строк