如何为合并项目指定交互式冲突解决方法(复制 Transact-SQL 编程)

Microsoft SQL Server 复制提供交互式冲突解决程序,可用于在 Microsoft Windows 同步管理器中进行按需同步过程中手动解决冲突。 创建合并发布的请求订阅时,您可以编程的方式指定订阅服务器将使用此图形界面来解决项目冲突。 只有支持此选项的项目中的冲突才会显示在交互式冲突解决程序中。 交互式解决方法需要 Windows 同步管理器。 如果在 Windows 同步管理器以外执行同步(如 SQL Server Management Studio 或复制监视器中的计划同步或按需同步),则会使用为项目指定的默认冲突解决方法自动解决冲突,而无需用户干预。 有关详细信息,请参阅交互式冲突解决

创建使用交互式冲突解决程序的合并请求订阅

  1. 在发布服务器的发布数据库中,执行 sp_helpmergearticle,同时指定 @publication。 注意结果集中其交互式冲突解决程序将被使用的每个项目的 allow_interactive_resolver 值。

    • 如果该值为 1,将使用交互式冲突解决程序。

    • 如果该值为 0,则您必须首先启用每个项目的交互式冲突解决程序。 为此,请执行 sp_changemergearticle,同时指定 @publication@article,为 @property 指定 allow_interactive_resolver 值,并将 @value 的值指定为 true

  2. 在订阅服务器上,对订阅数据库执行 sp_addmergepullsubscription。 有关详细信息,请参阅如何创建请求订阅(复制 Transact-SQL 编程)

  3. 在订阅服务器的订阅数据库中,执行 sp_addmergepullsubscription_agent,同时指定下列参数:

    • @publisher@publisher_db(已发布的数据库)和 @publication

    • @enabled_for_syncmgr 的值指定为 true

    • @use_interactive_resolver 的值指定为 true

    • 合并代理所需的安全帐户信息。 有关详细信息,请参阅如何创建请求订阅(复制 Transact-SQL 编程)

  4. 在发布服务器的发布数据库中,执行 sp_addmergesubscription

定义支持交互式冲突解决程序的项目

  • 在发布服务器上,对发布数据库执行 sp_addmergearticle。 为 @publication 指定项目所属的发布的名称,为 @article 指定项目的名称,为 @source_object 指定要发布的数据库对象,并将 @allow_interactive_resolver 的值指定为 true。 有关详细信息,请参阅如何定义项目(复制 Transact-SQL 编程)

请参阅

概念