根据为每个项目指定的冲突解决程序解决合并复制中的冲突。 默认情况下,无需用户干预即可解决冲突。 但是,可以在Microsoft复制冲突查看器中查看冲突,并且可以更改解决结果。
复制冲突查看器中提供了冲突保留期指定的时间(默认值为 14 天)的冲突数据。 若要设置冲突保留期,请执行以下任一设置:
为sp_addmergepublication(Transact-SQL)的@conflict_retention参数指定保留值。
为@property参数指定conflict_retention值,并为@value参数指定保留值,适用于sp_changemergepublication(Transact-SQL)。
默认情况下,系统会存储冲突信息。
在发布服务器和订阅服务器中,如果发布兼容级别为 90RTM 或更高版本。
在发布方,如果发布兼容级别低于 80RTM。
如果订阅者正在运行 SQL Server Compact,请在发布服务器上进行处理。 冲突数据不能存储在 SQL Server Compact 订阅服务器上。
冲突信息的存储由 conflict_logging 发布属性控制。 有关详细信息,请参阅sp_addmergepublication(Transact-SQL)和sp_changemergepublication(Transact-SQL)。
使用Microsoft交互式冲突解决程序在同步期间也可以以交互方式解决冲突。 交互式冲突解决程序可通过 Microsoft Windows 同步管理器获得。 有关详细信息,请参阅 使用 Windows 同步管理器(Windows 同步管理器)同步订阅。
查看并处理合并出版物的冲突
在 Microsoft SQL Server Management Studio 中连接到发布服务器(或订阅服务器,如果适用),然后展开服务器节点。
展开 “复制 ”文件夹,然后展开 “本地发布” 文件夹。
右键单击要查看冲突的发布内容,然后单击“查看冲突”。
注释
如果为 conflict_logging 属性指定了“订阅者”值,则“视图冲突”菜单选项不可用。 若要查看冲突,请从命令提示符开始 ConflictViewer.exe。 默认情况下,ConflictViewer.exe 位于以下目录中:Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE。 要获取有效的启动参数列表,请运行 ConflictViewer.exe -?。
在“ 选择冲突表 ”对话框中,选择要查看冲突的数据库、发布和表。
在复制冲突查看器中,可以:
使用上网格右侧的按钮筛选行。
选择上部网格中的一行以显示下网格中该行的信息。
选择上部网格中的一行或多行,然后单击“ 删除”,相当于单击“ 提交优胜者 ”按钮(无需对数据进行任何更改)。
单击“属性”按钮(...)可查看冲突中涉及的列的详细信息。
在提交数据之前编辑 冲突获胜者 或 冲突失败者 列中的数据(如果列为灰色,则数据为只读)。
单击“ 提交优胜者 ”接受指定为冲突获胜者的行。
单击 “提交失败者 ”以替代解决方案,并将指定为冲突的失败者的值传播到拓扑中的所有节点。
选择 “记录此冲突的详细信息 ”,将冲突数据记录到文件中。 若要指定文件的位置,请指向 “视图 ”菜单,然后单击“ 选项”。 输入一个值,或单击浏览按钮(...),然后导航到相应的文件。 单击“ 确定 ”退出 “选项 ”对话框。
关闭复制冲突查看器。