Поделиться через


Арбитры на базе технологии Microsoft COM

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

Арбитры конфликтов устанавливаются во время процесса установки SQL Server 2005. Выполните хранимую процедуру sp_enumcustomresolvers для просмотра всех арбитров конфликтов, зарегистрированных на компьютере. При выполнении этой процедуры отображаются описание и глобальный уникальный идентификатор (Globally unique identifier, 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

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

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

Поддерживает конфликты обновления. Дополнительные сведения см. в разделе How to: Implement a Stored Procedure-Based Custom Conflict Resolver for a Merge Article (Replication Transact-SQL Programming).

См. также

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

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

Другие ресурсы

sp_enumcustomresolvers (Transact-SQL)

Справка и поддержка

Получение помощи по SQL Server 2005