Сопоставители на базе технологии Microsoft COM

Все сопоставители, основанные на технологии COM и поставляемые с SQL Server, обрабатывают конфликты обновления, а там, где это оговорено специально, они также обрабатывают конфликты вставки и удаления. Все арбитры производят отслеживание столбцов; большинство из них также производят отслеживание строк. Эти и все другие основанные на технологии COM сопоставители объявляют типы конфликтов, которые они обрабатывают, а для всех остальных типов конфликтов агент слияния использует сопоставитель по умолчанию.

Сопоставители устанавливаются во время процесса установки SQL Server. Выполните хранимую процедуру sp_enumcustomresolvers для просмотра всех сопоставителей, зарегистрированных на компьютере. При выполнении этой процедуры отображаются описание и глобальный уникальный идентификатор (GUID) для каждого сопоставителя в отдельном результирующем наборе.

Чтобы указать сопоставитель, см. Определение сопоставителя статей публикации слиянием.

В следующей таблице описываются атрибуты конкретных сопоставителей.

Название

Требуемые входные данные

Описание

Комментарии

Арбитр конфликтов Microsoft SQL Server, использующий суммирование

Имя суммируемого столбца. Столбец должен относиться к арифметическому типу данных (например, int, smallint, numeric и т. д.).

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

Поддерживает конфликты обновления, и только отслеживание столбцов.

Арбитр конфликтов Microsoft SQL Server, использующий усреднение

Имя усредняемого столбца. Столбец должен относиться к арифметическому типу данных (например, int, smallint, numeric и т. д.).

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

Поддерживает конфликты обновления, и только отслеживание столбцов.

Арбитр конфликтов Microsoft SQL Server, использующий тип DATETIME (побеждает более раннее значение)

Имя столбца, применяемого для определения победителя конфликта. Столбец должен иметь тип данных datetime.

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

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

Арбитр конфликтов Microsoft SQL Server, использующий тип DATETIME (побеждает более позднее значение)

Имя столбца, применяемого для определения победителя конфликта. Столбец должен иметь тип данных datetime.

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

Поддерживает конфликты обновления, отслеживание строк и столбцов.

Арбитр конфликтов Microsoft SQL Server, использующий максимум

Имя столбца, применяемого для определения победителя конфликта. Столбец должен относиться к арифметическому типу данных (например, int, smallint, numeric и т. д.).

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

Поддерживает отслеживание строк и столбцов.

Арбитр конфликтов Microsoft SQL Server, использующий минимум

Имя столбца, применяемого для определения победителя конфликта. Столбец должен относиться к арифметическому типу данных (например, int, smallint, numeric и т. д.).

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

Поддерживает конфликты обновления, отслеживание строк и столбцов.

Арбитр конфликтов Microsoft SQL Server, использующий слияние текста

Имя текстового столбца и разделитель, например @resolver_info = '[col1][===]'.

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

Поддерживает конфликты обновления, и только отслеживание столбцов.

Арбитр конфликтов Microsoft SQL Server с победой подписчика

Нет входных данных.

Конфликт разрешается в пользу подписчика, независимо от того является он источником или пунктом назначения.

Поддерживает все типы конфликтов.

Сопоставитель Microsoft SQL Server, использующий приоритетный столбец

Имя столбца, применяемого для определения победителя конфликта. Столбец должен относиться к арифметическому типу данных (например, int, smallint, numeric и т. д.).

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

Поддерживает конфликты обновления, отслеживание строк и столбцов.

Арбитр конфликтов Microsoft SQL Server, использующий только передачу

Нет входных данных.

Принимаются изменения, переданные на издатель; изменения не загружаются на подписчик.

Поддерживает все типы конфликтов.

Арбитр конфликтов Microsoft SQL Server, использующий только загрузку

Нет входных данных.

Отклоняются изменения, переданные на издатель; изменения загружаются на подписчик.

Поддерживает все типы конфликтов.

Арбитр конфликтов хранимых процедур Microsoft SQL Server

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

Устранение конфликта зависит от логики указываемой хранимой процедуры.

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

См. также

Справочник

sp_enumcustomresolvers (Transact-SQL)

Основные понятия

Расширенное обнаружение и разрешение конфликтов репликации слиянием