如何为合并项目指定冲突跟踪和冲突解决级别(复制 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