Сопоставители на базе технологии 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)
Основные понятия
Расширенное обнаружение и разрешение конфликтов репликации слиянием