【发布时间】:2009-01-08 18:40:24
【问题描述】:
我在工作中遇到了数据库问题。目前有审计,但它笨重,需要大量维护,并且在某些方面存在不足。所以我要替换它。
我希望以尽可能通用的方式完成此操作,并设计了表格,以及所有内容的链接和更新方式。
现在,这一切都很好,但我希望能够编写一种通用方法将记录插入这些审计表。 (无需为正在更改的每个表中的每一列输入命令。)
在存储过程中是否有遍历表中所有列的方法?而且我想以这样的方式编写它,它可以与多个表一起使用,并自动拾取和审核添加的列等。
有什么想法吗?
编辑:我想我应该澄清一下。我将审核表中的数据。但我将使用相同的表来存储数据库中每个表的审计数据。
而且我不能使用触发器,因为通常,当更新发生时,它会发生在多个表中,但我希望所有这些更新都成为单个变更集的一部分。
这不是问题,因为我可以在单个存储过程中进行所有更新。我更喜欢循环之类的方式,我可以获取所有更新的字段,找出哪些已更改,并将这些更改的字段插入到审计表中。
而且我想在没有长长的 if 语句列表和每列的 insert 语句的情况下执行此操作。 (通过在通用循环中执行此操作,它将自动处理添加的列,而不会被删除的列打扰)
【问题讨论】:
标签: sql-server stored-procedures auditing