如何为合并项目指定不应跟踪删除(复制 Transact-SQL 编程)

注意注意

后续版本的 Microsoft SQL Server 将删除该功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

默认情况下,合并复制会同步发布服务器和订阅服务器之间的 DELETE 命令。您可以使用合并复制来保留订阅数据库中的行,即使这些行已从发布中删除,反之亦然。您可以通过编程方式指定在创建新项目时忽略 DELETE 命令,或者可以使用复制存储过程在以后启用此功能。

重要说明重要提示

启用此功能将导致无法收敛,也就是说,位于订阅服务器上的数据将无法准确反映发布服务器上的数据。您必须实现自己的用于手动删除已删除行的机制。

指定对新合并项目忽略删除

为现有的合并项目指定忽略删除

  1. 若要确定是否对项目启用了错误补偿,请执行 sp_helpmergearticle (Transact-SQL) 并注意结果集中的 delete_tracking 值。如果该值为 0,则删除已被忽略。

  2. 如果步骤 1 的值为 1,则在发布服务器上对发布数据库执行 sp_changemergearticle (Transact-SQL)。将 @property 的值指定为 delete_tracking,并将 @value 的值指定为 false。

    注意注意

    如果某个项目的源表已在另一个发布中发布,则两个项目的 delete_tracking 值必须相同。