Арбитры на базе технологии Microsoft COM
Все основанные на технологии COM арбитры конфликтов, поставляемые с Microsoft SQL Server 2005, обрабатывают конфликты обновления, а там, где это оговорено специально, они также обрабатывают конфликты вставки и удаления. Все арбитры производят отслеживание столбцов; большинство из них также производят отслеживание строк. Эти и все другие основанные на технологии COM арбитры конфликтов объявляют типы конфликтов, которые они обрабатывают, а для всех остальных типов конфликтов агент слияния использует арбитр по умолчанию.
Арбитры конфликтов устанавливаются во время процесса установки SQL Server 2005. Выполните хранимую процедуру sp_enumcustomresolvers для просмотра всех арбитров конфликтов, зарегистрированных на компьютере. При выполнении этой процедуры отображаются описание и глобальный уникальный идентификатор (Globally unique identifier, GUID) для каждого арбитра в отдельном наборе результатов.
Указание арбитра
- SQL Server Management Studio: Как указать арбитр слияния статей (среда SQL Server Management Studio)
- Программирование репликации на языке Transact-SQL: How to: Specify a Merge Article Resolver (Replication Transact-SQL Programming)
В следующей таблице описываются атрибуты конкретных арбитров конфликтов.
Имя | Требуемые входные данные | Описание | Комментарии |
---|---|---|---|
Арбитр конфликтов 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, использующий слияние текста |
Имя текстового столбца и разделитель, например |
Победитель в конфликте определяется по значению приоритета. Конфликтующие текстовые столбцы устанавливаются равными объединенному значению, состоящему из общего префикса, за которым следует уникальная часть от издателя, затем следует разделитель, а затем — уникальная часть от подписчика. |
Поддерживает конфликты обновления, и только отслеживание столбцов. |
Арбитр конфликтов 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)