我想在我的应用程序中实现历史记录功能,但我想跳过 为每个业务对象数据表创建历史数据表。
我正考虑创建一个历史数据表,其中包含一个标识列和一个包含更改数据的XML列,如下所示
ID: int
XML: Data
Name: data table name
这种方法是由某人实施还是您看到有关此架构的任何限制?
答案 0 :(得分:0)
由于您使用的是2008,因此可以尝试使用Change Data Capture。
答案 1 :(得分:0)
我已经使用了本文的修改版本 - Adding simple trigger-based auditing to your SQL Server database - 多年了。
它使用旧的INFORMATION_SCHEMA
视图,因为它依赖于任何较新的DMV(例如sys.tables
,sys.columns
)中不可用的列位置。除此之外,它的飞行和工作就像一个魅力。
如果性能成为问题 - 这种情况很少见 - 您可以考虑使用Service Broker实现异步触发器以写入历史记录表。