为合并项目指定不应跟踪删除(复制 Transact-SQL 编程)
注意 |
---|
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。 |
默认情况下,合并复制同步发布服务器和订阅服务器之间的 DELETE 命令。 您可以使用合并复制来保留订阅数据库中的行,即使这些行已从发布中删除,反之亦然。 您可以通过编程方式指定在创建新项目时忽略 DELETE 命令,或者可以使用复制存储过程在以后启用此功能。
重要提示 |
---|
启用此功能将导致无法收敛,也就是说,位于订阅服务器上的数据将无法准确反映发布服务器上的数据。 您必须实现自己的用于手动删除已删除行的机制。 |
指定对新合并项目忽略删除
在发布服务器上,对发布数据库执行sp_addmergearticle (Transact-SQL)。 将 @delete_tracking 的值指定为false。 有关详细信息,请参阅定义项目。
注意 如果某个项目的源表已在另一个发布中发布,则两个项目的 delete_tracking 值必须相同。
为现有的合并项目指定忽略删除
若要确定是否对项目启用了错误补偿,请执行 sp_helpmergearticle (Transact-SQL) 并注意结果集中的 delete_tracking 值。 如果该值为 0,则删除已被忽略。
如果步骤 1 的值为 1,则在发布服务器上对发布数据库执行 sp_changemergearticle (Transact-SQL)。 将 @property 的值指定为 delete_tracking,并将 @value 的值指定为 false。
注意 如果某个项目的源表已在另一个发布中发布,则两个项目的 delete_tracking 值必须相同。