0

我必须监视数据库中的一个表的更改并将它们复制到另一个数据库中的某个表。由于某种原因,我无法修改原始数据库的结构,因此无法使用触发器或创建约束等。更改跟踪似乎是我需要的理想解决方案,但有些表没有主键已定义,因此我无法使用它。至于变更数据捕获,这里 - http://msdn.microsoft.com/en-us/library/bb522511.aspx是这样写的:

.

“要启用网络跟踪,源表必须具有主键或唯一索引。”

所以基本上,似乎有类似的问题。

这种情况有什么解决方法吗?或者,也许我错过了什么?

4

1 回答 1

2

不。让他们有一个主键。反正它有一个。如果这不起作用 - 抱歉,如果没有主键,您对哪些表真正改变了零概念。不管是谁设置的都应该被鞭打,然后为他写一个“我需要一份工作”的小广告,因为他在麦当劳提供汉堡——他显然在数据库设计方面失败了。

您现在唯一的选择是对每次同步进行完整的数据比较。玩得开心。没有解决方法。这项技术需要定义一个主键,如果您不能使用触发器或其他任何东西,那么“选择”和代码端数据比较(这会很慢)是您唯一的选择。

于 2013-01-05T14:15:03.123 回答