我参与了几个将XML数据保存到数据库中的应用程序。到目前为止,所有这些都只是用新的XML内容覆盖了当前的XML内容。

我想将对XML的更改保存到数据库,但不会覆盖当前数据库中的内容。

如果只是为更改创建新行并保留旧行不完整,我还可以使用其他选项吗?

我一直在考虑将差异保存为实际的文本差异,这并不总是适用于XML。

我还想要这个吗?

有帮助吗?

解决方案

您可能需要考虑添加一个审核表来放在数据表旁边。

它只有您感兴趣的列跟踪历史记录以及日期时间列(记录更改日期),通常您也需要一些用户信息(即从连接中拉出登录用户或在插入/更新中提供用户名。

然后在数据表上创建Update触发器,并从已删除的伪表中将新行插入到审计表中。如果您正在执行更新,这将包含更新之前的数据,因为更新实际上是删除和插入。

还有一个更通用的解决方案,建议使用SQL CLR抽象实现一个唯一的审计表并触发您希望审计的每个数据表: http://www.sqljunkies.ddj.com/Article/4CD01686-5178-490C-A90A-5AEEF5E35915.scuk

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top