有没有办法强制复制只复制插入和更新的数据?

时间:2010-02-22 08:24:29

标签: sql-server replication

我希望我的数据库版本包含从第一个到现在的所有数据。如果我使用sql server replication,我可以强制它忽略复制的删除操作吗?

2 个答案:

答案 0 :(得分:2)

我不知道这样的功能。

如果一个开箱即用,我会感到惊讶。如果代替UPDATE DELETE INSERTXXX,该怎么办?您的目标数据库将无法处理此类更改,因为它不会删除具有某个唯一标识符(列值)unique key violation的行,然后将尝试插入具有此标识符的新行,从而生成{{ 1}}。

EDIT-1:如果你想要的是生产中的only-recent数据库和审核的whole数据库,那么也许你应该尝试不同的解决方案:

  1. 逻辑删除和视图:您更改DELETE逻辑(通过更改DELETE命令或使用INSERT OF触发器)仅将行标记为已删除。然后,您创建一个基本上包装您的表的视图,但只过滤那些未删除的视图。改为对此视图运行所有SELECT / INSERT / UPDATE查询。最后,在您当前的解决方案中,您确实将“已删除”记录标记为已删除,对吧?
  2. 审核表:将您的历史记录保存在主数据库中,但保存在AUDIT(影子)表中。再次,您可以使用几乎非侵入性的AFTER触发器来完成此操作。

答案 1 :(得分:1)