Microsoft COM-Based 解析程序

SQL Server 提供的所有基于 COM 的冲突解决程序都处理更新冲突,并在所指示的位置处理插入和删除冲突。 它们都处理列跟踪;大多数还处理行跟踪。 这些和所有其他基于 COM 的冲突解决程序声明了可以处理的冲突类型,而合并代理将默认冲突解决程序用于所有其他冲突类型。

解析程序是在 SQL Server 安装过程中安装的。 执行 sp_enumcustomresolvers 存储过程以查看计算机上注册的所有冲突解决程序。 执行该过程将显示每个解析程序的描述和全局唯一标识符(GUID)在独立的结果集中。

若要指定解析程序,请参阅 “指定合并文章解析程序”

下表描述了特定解析程序的属性。

名称 要求的输入 DESCRIPTION 注释
Microsoft SQL Server 增量冲突解决器 被求和的列的名称。 它必须具有算术数据类型(如 intsmallintnumeric 等)。 冲突获胜者根据优先级值确定。 指定的列值设置为源和目标列值的总和。 如果一个设置为 NULL,则它们将设置为另一列的值。 仅支持更新冲突,仅限于列跟踪。
Microsoft SQL Server 平均冲突解决程序 要求平均值的列的名称。 它必须具有算术数据类型(如 intsmallintnumeric 等)。 冲突获胜者根据优先级值确定。 生成的列值设置为源和目标列值的平均值。 如果一个被设置为 NULL,那么它将被设置为另一列的值。 支持更新冲突,仅限于列跟踪。
Microsoft SQL Server DATETIME (早期获胜)冲突解决器 用于确定冲突获胜者的列的名称。 它必须具有 日期/时间 数据类型。 具有早期 日期/时间 值的列确定冲突获胜者。 如果其中一个设置为 NULL,则包含另一个的那一行将是赢家。 支持更新冲突、行和列跟踪。 列值直接比较,不会因为不同时区而进行调整。
Microsoft SQL Server DATETIME (稍后获胜) 冲突解决程序 用于确定冲突获胜者的列的名称。 它必须具有 日期/时间 数据类型。 具有更高 日期/时间 值的列确定冲突获胜者。 如果一个设置为 NULL,则包含另一个行是赢家。 支持更新冲突、行和列跟踪。
Microsoft SQL Server 最大化冲突解决程序 用于决定冲突获胜者的列名称。 它必须具有算术数据类型(如 intsmallintnumeric 等)。 具有较大数值的列决定了冲突获胜者。 如果一个设置为 NULL,则包含另一个的行将成为赢家。 支持行和列跟踪。
Microsoft SQL Server 最低冲突解决程序 用于确定冲突胜者的列名称。 它必须具有算术数据类型(如 intsmallintnumeric 等)。 具有较小数值的列确定冲突获胜者。 如果一个被设置为 NULL,则包含另一个的那一行是赢家。 支持更新冲突、行和列跟踪。
Microsoft SQL Server 合并文本冲突解决器 文本列和分隔符的名称,例如 @resolver_info = '[col1][===]' 冲突获胜者根据优先级值确定。 冲突中的文本列将被设置为合并后的值,合并值由公共前缀开始,然后添加来自发布者的唯一部分,接着是分隔符,最后是来自订阅者的独特部分。 仅支持更新冲突,仅限于列跟踪。
Microsoft SQL Server 订阅者始终赢得冲突解决器 无输入。 订阅者,无论它是源还是目标,都是优胜者。 支持所有冲突类型。
Microsoft SQL Server 优先级列解析程序 用于决定冲突胜者的列名称。 它必须具有算术数据类型(如 intsmallintnumeric 等)。 具有较大数值的列决定了冲突获胜者。 如果其中一个设置为 NULL,则包含另一个值的行是赢家。 支持更新冲突、行和列跟踪。
Microsoft SQL Server 仅上传冲突解决程序 无输入。 接受上传到发布者的更改,订阅者不会下载这些更改。 支持所有冲突类型。
Microsoft SQL Server 仅供下载冲突解析器 无输入。 上载到发布服务器的更改将被拒绝;更改将下载到订阅服务器。 支持所有冲突类型。
Microsoft SQLServer 存储过程解析程序 冲突解决程序应调用的存储过程的名称,以处理冲突。 冲突解决取决于您指定的存储过程中的逻辑。 支持处理更新冲突。 有关详细信息,请参阅 为合并项目实现自定义冲突解决程序

另请参阅

高级合并复制冲突检测与解决
sp_enumcustomresolvers(Transact-SQL)