实施历史表

时间:2012-02-28 12:03:31

标签: sql-server sql-server-2008 history

我想在我的应用程序中实现历史记录功能,但我想跳过 为每个业务对象数据表创建历史数据表。

我正考虑创建一个历史数据表,其中包含一个标识列和一个包含更改数据的XML列,如下所示

ID: int
XML: Data
Name: data table name

这种方法是由某人实施还是您看到有关此架构的任何限制?

2 个答案:

答案 0 :(得分:0)

由于您使用的是2008,因此可以尝试使用Change Data Capture

答案 1 :(得分:0)

我已经使用了本文的修改版本 - Adding simple trigger-based auditing to your SQL Server database - 多年了。

它使用旧的INFORMATION_SCHEMA视图,因为它依赖于任何较新的DMV(例如sys.tablessys.columns)中不可用的列位置。除此之外,它的飞行和工作就像一个魅力。

如果性能成为问题 - 这种情况很少见 - 您可以考虑使用Service Broker实现异步触发器以写入历史记录表。