指定合并项目的冲突跟踪和解决方法级别

本主题说明如何使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 2012 中指定合并项目的冲突跟踪和解决方法级别。

在同步对合并发布的订阅时,复制检查是否存在因对发布服务器和订阅服务器上的相同数据进行更改而导致的冲突。 可以指定是在行级别检测冲突(即对行的任何更改都视为冲突),还是在列级别检测冲突(即只有更改了相同的行和列时才视作冲突)。 项目的冲突解决在行级别执行。 有关在使用逻辑记录时检测和解决冲突的详细信息,请参阅检测并解决逻辑记录中的冲突

本主题内容

  • 开始之前:

    限制和局限

  • 指定合并项目的冲突跟踪和解决方法级别,使用:

    SQL Server Management Studio

    Transact-SQL

开始之前

限制和局限

  • 如果在初始化订阅后修改跟踪级别,必须重新初始化这些订阅。 有关属性更改的影响的详细信息,请参阅更改发布和项目属性

  • 对于行级和列级跟踪,始终在行级执行冲突解决:入选行将覆盖落选行。 合并复制还允许您指定在逻辑记录级跟踪和解决冲突,但 SQL Server Management Studio 没有提供这些选项。 有关在复制存储过程中设置这些选项的信息,请参阅定义合并表项目间的逻辑记录关系

用于“返回首页”链接的箭头图标[Top]

使用 SQL Server Management Studio

可以在**“项目属性”对话框的“属性”选项卡上为合并项目指定行级或列级跟踪,可以从新建发布向导和“发布属性 - <发布>”**对话框中访问该对话框。 有关使用该向导和访问该对话框的详细信息,请参阅创建发布查看和修改发布属性

指定行级或列级跟踪

  1. 在新建发布向导或**“发布属性 - <发布>”对话框的“项目”**页上选择表。

  2. 单击**“项目属性”,然后单击“设置突出显示的表项目的属性”“设置所有表项目的属性”**。

  3. 在**“项目属性 <项目>”对话框的“属性”选项卡中,为“跟踪级别”属性:“行级跟踪”“列级跟踪”**选择以下值之一:

  4. 如果在**“发布属性 - <发布>”对话框中,请单击“确定”**保存并关闭对话框。

用于“返回首页”链接的箭头图标[Top]

使用 Transact-SQL

为新的合并项目指定冲突跟踪选项

  • 在发布服务器上的发布数据库中,执行 sp_addmergearticle 并为 @column_tracking 指定以下值之一:

    • true - 为项目使用列级别跟踪。

    • false - 使用行级别跟踪,这是默认值。

更改合并项目的冲突跟踪选项

  1. 若要确定某个合并项目的冲突跟踪选项,请执行 sp_helpmergearticle。 请注意项目的结果集中 column_tracking 选项的值。 值为 1 表明使用的是列级别的跟踪,值为 0 表明使用的是行级别的跟踪。

  2. 在发布服务器上,对发布数据库执行 sp_changemergearticle。 将 @property 的值指定为 column_tracking,并且将 @value 指定为以下值之一:

    • true - 为项目使用列级别跟踪。

    • false - 使用行级别跟踪,这是默认值。

    @force_invalidate_snapshot@force_reinit_subscription 的值均指定为 1

用于“返回首页”链接的箭头图标[Top]

请参阅

概念

高级合并复制冲突的检测和解决

检测并解决逻辑记录中的冲突

定义合并表项目间的逻辑记录关系

检测并解决合并复制冲突