Microsoft COM-Based Resolvers
Все сопоставители, основанные на технологии COM и поставляемые с SQL Server , обрабатывают конфликты обновления, а там, где это оговорено специально, они также обрабатывают конфликты вставки и удаления. Все арбитры производят отслеживание столбцов; большинство из них также производят отслеживание строк. Эти и все другие основанные на технологии COM сопоставители объявляют типы конфликтов, которые они обрабатывают, а для всех остальных типов конфликтов агент слияния использует сопоставитель по умолчанию.
Сопоставители устанавливаются во время процесса установки SQL Server. Выполните хранимую процедуру sp_enumcustomresolvers для просмотра всех сопоставителей, зарегистрированных на компьютере. При выполнении этой процедуры отображаются описание и глобальный уникальный идентификатор (GUID) для каждого сопоставителя в отдельном результирующем наборе.
Чтобы указать сопоставитель, см. Specify a Merge Article Resolver.
В следующей таблице описываются атрибуты конкретных сопоставителей.
name | Требуемые входные данные | Описание | Комментарии |
---|---|---|---|
Арбитр конфликтов 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 | Имя хранимой процедуры, которую должен вызвать сопоставитель для разрешения конфликта. | Устранение конфликта зависит от логики указываемой хранимой процедуры. | Поддерживает конфликты обновления. Дополнительные сведения см. в статье Реализация пользовательского арбитра конфликтов для статьи публикации слиянием |
См. также:
Advanced Merge Replication Conflict Detection and Resolution
sp_enumcustomresolvers (Transact-SQL)