我们使用的是 SQL Server 2008 SP 2,并且在 6 个站点之间存在复制
问题是:
我们将金额值保存在一列中(例如:500$),这可能会同时在两个站点中更改,然后如果复制当时关闭,那么我们在两个站点中都有两个不同的值,如果我使用最近更新或发布者作为获胜者我会得到错误的金额值
是否有任何复制策略来合并这两个值?
我们使用的是 SQL Server 2008 SP 2,并且在 6 个站点之间存在复制
问题是:
我们将金额值保存在一列中(例如:500$),这可能会同时在两个站点中更改,然后如果复制当时关闭,那么我们在两个站点中都有两个不同的值,如果我使用最近更新或发布者作为获胜者我会得到错误的金额值
是否有任何复制策略来合并这两个值?
你的问题有些奇怪。如果您在事务数据库上使用事务复制(参见此处),则不会发生这种情况。
问题是您的数据库设计不正确。您允许“增量”更改进入字段,而不存储增量(事务)。您的问题有点模棱两可,因为您没有解释真正应该发生的事情。为什么最近的值不够?
您应该将数据库更改存储为事务:
而不是作为绝对值:
在第一种情况下,您可以按任一顺序应用事务以迎头赶上。在第二种情况下,您最终将只应用其中一个。
汇总值(例如余额)应从事务中派生,可能使用触发器或存储过程。