2009-10-18 66 views
0

我需要在我的DB中创建一个日志,程序中的每个动作都应该写在那里。如何在SQL-Server上创建关系数据日志?

我也想存储额外的数据,例如有行动应用到的表和行。 换句话说,我希望日志是动态的,并应该能够引用数据库中的其他表。

问题是,我不知道如何将所有表与这个日志关联起来。

任何想法?

回答

1

你有两个选择:

1)修改你的程序添加日志记录每一个数据库访问

2)添加触发器的每个表在你的数据库进行记录操作。

+0

我的问题不是如何应该触发日志记录,我的问题是如何在获取附加表格数据的同时存储很长时间。 – Shimmy 2009-10-19 11:23:14

+0

我还是不明白你的问题。 “长期存放”对我来说毫无意义。也许这是一个语言问题。 你想从附表中存储什么数据? “附表”是什么意思?附加什么? – dar7yl 2009-10-19 17:13:09

+0

附加我的意思是,例如我有5个表,我希望他们参与日志记录,我希望每个日志记录能够提供此日志条目具有共同的表名和行ID。 – Shimmy 2009-10-19 19:33:44

0

我不建议为所有表格提供一个日志记录表。如果你这样做的话,你会遇到锁定问题(每个表格中的每个插入,更新和删除都必须打到这个,不好的主意)。为每个要审计的表创建一个表。表格中有许多可能的设计,但通常包括旧版本的变体,新值,更改日期以及执行更改的用户。

然后在每个表上创建触发器以记录更改。

我知道SQL Server 2008还具有一个系统化的方式来设置审核,这将是更易于设置比人工审核和可能足以贵公司吸引到使用2008