0

我们使用的是 SQL Server 2008 SP 2,并且在 6 个站点之间存在复制

问题是:

我们将金额值保存在一列中(例如:500$),这可能会同时在两个站点中更改,然后如果复制当时关闭,那么我们在两个站点中都有两个不同的值,如果我使用最近更新或发布者作为获胜者我会得到错误的金额值

是否有任何复制策略来合并这两个值?

4

1 回答 1

0

你的问题有些奇怪。如果您在事务数据库上使用事务复制(参见此处),则不会发生这种情况。

问题是您的数据库设计不正确。您允许“增量”更改进入字段,而不存储增量(事务)。您的问题有点模棱两可,因为您没有解释真正应该发生的事情。为什么最近的值不够?

您应该将数据库更改存储为事务:

  • 起始价值:500美元
  • 交易1:加$100
  • 交易 2:减去 $200

而不是作为绝对值:

  • 起始价值:500美元
  • 交易 1:将价值更改为 600 美元
  • 交易 2:将价值更改为 400 美元

在第一种情况下,您可以按任一顺序应用事务以迎头赶上。在第二种情况下,您最终将只应用其中一个。

汇总值(例如余额)应从事务中派生,可能使用触发器或存储过程。

于 2013-02-10T17:09:30.720 回答