代码之家  ›  专栏  ›  技术社区  ›  Nathan W

查询要报告的单个审核表

  •  0
  • Nathan W  · 技术社区  · 15 年前

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

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

    在您进行一些更改之后,审核表如下所示: alt text

    大多数时候为了记录历史,我只需要复制一张表并添加一个日期 将列修改到最后,然后将整行复制到history表中,但如果要审核的内容很多,则会创建大量复制的数据和许多history表。

    2 回复  |  直到 10 年前
        1
  •  5
  •   Ivan Stankovic    11 年前

    这个“噩梦”(喜欢dave的评论)的另一种解决方案是使用两个由审计触发器填充的审计表。你可以评估 3rd party solution 它通过gui创建触发器和审计表,然后检查它的实际工作方式。

    dislaimer:我在apexsql做产品支持工程师

        2
  •  2
  •   Dave Markle    15 年前

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

    不,我觉得你原来的想法好得多——只是简单地把表行剪下来。大多数时候,你不必担心额外的空间消耗。空间是便宜的,相比之下,在可用性方面的折衷,你正在通过减少改变列。

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