0

我一直在为我的数据库中的几个表考虑一个单一的审计表的想法。我在此页面上找到了代码:http ://www.simple-talk.com/sql/database-administration/pop-rivetts-sql-server-faq-no.5-pop-on-the-audit-trail/

我喜欢这个想法,但我唯一有点困惑的是如何查询信息以便以有用的方式显示它。

进行一些更改后,审计表如下所示: 替代文字

大多数时候为了做历史,我只会制作一个表的副本并在末尾添加一个日期修改列,然后将整行复制到历史表中,但这会创建大量复制的数据和大量历史表如果你有很多事情要审计。

4

2 回答 2

5

这个“噩梦”的替代解决方案(喜欢 Dave 的评论)是使用由审计触发器填充的两个审计表。您可以评估通过 GUI 创建触发器和审计表的第 3 方解决方案,然后检查它的实际工作方式。

免责声明:我在 ApexSQL 担任产品支持工程师

于 2014-05-15T17:57:13.743 回答
2

我必须说,我认为这种审计模式是一场噩梦。我想你已经偶然发现了原因。使用这种方案很难重现数据,其中最重要的原因是您没有正在更改的数据类型。即使你这样做了,你也很可能在字符串和本机数据类型之间的转换中失去精度。

不,我认为您最初的想法要好得多 - 只是简单地切割表格行。大多数时候,您不必担心消耗的额外空间。与通过按列切割更改所做的可用性权衡相比,空间很便宜。

还要记住,文章描述的方案甚至没有为非常窄的表格节省空间!它实际上可能比行级审计更大。

于 2009-08-06T12:19:43.233 回答