指定合并项目的交互式冲突解决
本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中指定合并项目的交互式冲突解决方法。
Microsoft SQL Server 复制提供交互式冲突解决程序,可用于在 Microsoft Windows 同步管理器中进行按需同步过程中手动解决冲突。 启用交互式冲突解决方法后,在同步过程中即可使用交互式冲突解决程序来交互式解决冲突。 交互式冲突解决程序可以通过 Microsoft Windows 同步管理器获取。 有关详细信息,请参阅使用 Windows 同步管理器同步订阅(Windows 同步管理器)。
本主题内容
开始之前:
建议
指定合并项目的交互式冲突解决办法,使用:
SQL Server Management Studio
Transact-SQL
开始之前
建议
- 如果在 Windows 同步管理器以外执行同步(如 SQL Server Management Studio 或复制监视器中的计划同步或按需同步),则会使用为项目指定的默认冲突解决方法自动解决冲突,而无需用户干预。 有关详细信息,请参阅交互式冲突解决。
[Top]
使用 SQL Server Management Studio
为项目启用交互式冲突解决方法
在新建发布向导或**“发布属性 - <发布>”对话框的“项目”**页上选择表。 有关使用该向导和访问该对话框的详细信息,请参阅创建发布 和查看和修改发布属性。
单击**“项目属性”,然后单击“设置突出显示的表项目的属性”或“设置所有表项目的属性”**。
在**“项目属性 - <项目>”或“项目属性 - <项目类型>”页中,单击“冲突解决程序”**选项卡。
选择**“允许订阅服务器在按需同步时交互式解决冲突”**。
单击“确定”。
如果在**“发布属性 - <发布>”对话框中,请单击“确定”**保存并关闭对话框。
指定订阅应使用交互式冲突解决方法
在**“订阅属性 - <订阅服务器>:<订阅数据库>”对话框中,将“交互式解决冲突”**指定为 True。 有关访问此对话框的详细信息,请参阅查看和修改推送订阅属性 和查看和修改请求订阅属性。
单击“确定”。
[Top]
使用 Transact-SQL
创建合并发布的请求订阅时,您可以编程方式指定订阅服务器将使用此图形界面来解决项目冲突。 只有支持此选项的项目中的冲突才会显示在交互式冲突解决程序中。
创建使用交互式冲突解决程序的合并请求订阅
在发布服务器的发布数据库中,执行 sp_helpmergearticle,同时指定 @publication。 注意结果集中其交互式冲突解决程序将被使用的每个项目的 allow_interactive_resolver 值。
如果该值为 1,将使用交互式冲突解决程序。
如果该值为 0,则您必须首先启用每个项目的交互式冲突解决程序。 为此,请执行 sp_changemergearticle,同时指定 @publication 和 @article,为 @property 指定 allow_interactive_resolver 值,并将 @value 的值指定为 true。
在订阅服务器上,对订阅数据库执行 sp_addmergepullsubscription。 有关详细信息,请参阅创建请求订阅。
在订阅服务器的订阅数据库中,执行 sp_addmergepullsubscription_agent,同时指定下列参数:
@publisher、@publisher_db(已发布的数据库)和 @publication。
将 @enabled_for_syncmgr 的值指定为 true。
将 @use_interactive_resolver 的值指定为 true。
合并代理所需的安全帐户信息。 有关详细信息,请参阅创建请求订阅。
在发布服务器的发布数据库中,执行 sp_addmergesubscription。
定义支持交互式冲突解决程序的项目
- 在发布服务器上,对发布数据库执行 sp_addmergearticle。 为 @publication 指定项目所属的发布的名称,为 @article 指定项目的名称,为 @source_object 指定要发布的数据库对象,并将 @allow_interactive_resolver 的值指定为 true。 有关详细信息,请参阅定义项目。
[Top]
请参阅
任务
查看和解决合并发布的数据冲突 (SQL Server Management Studio)