我有 2 个 SQL Server 实例,我在其中对数据库使用合并复制。开发人员不小心同时向订阅者和发布者插入了数据。现在我在两个数据库中都有数据,但 rowguid 不同。
问:我是否可以从订阅者中删除那些具有不同 rowguid 的行,而发布者中的行保持不变?如果是这样,来自发布者的行是否会复制回订阅者但现在具有相同的 rowguid?
我有 2 个 SQL Server 实例,我在其中对数据库使用合并复制。开发人员不小心同时向订阅者和发布者插入了数据。现在我在两个数据库中都有数据,但 rowguid 不同。
问:我是否可以从订阅者中删除那些具有不同 rowguid 的行,而发布者中的行保持不变?如果是这样,来自发布者的行是否会复制回订阅者但现在具有相同的 rowguid?
如果同一逻辑行在
rowguid
发布者和订阅者处有两个不同的值,那么您就会遇到冲突。使用
rowguid
列复制更改,因此rowguid
就复制而言,不同意味着不同的行。您可以安全地删除订阅者的重复行,并且不会将更改复制到发布者(rowguid
由于上传冲突,发布者不存在具有匹配项的行)。一旦在订阅者处删除了行,合并代理就能够在订阅者处插入来自发布者的行。
默认情况下,合并复制是双向的,因此如果您在订阅服务器上删除一行,则该更改将被复制,并且同一行将在发布服务器上被删除,反之亦然。