1

我们有一个使用变更数据捕获(CDC)功能的生产数据库来维护几个表的审计数据。但是由于性能影响和需要对数据库结构进行更改,例如添加索引,但由于 CDC 而我们无法做到这一点,我们现在想要禁用 CDC。

要求是从 Web 应用程序中为单个审计表中的一组表捕获所有插入、删除和更新操作。让我们举个例子,我必须在 TableB 中为通过 Web 应用程序 [in C#] 对 TableA 执行的每个添加、更新和删除操作维护 TableA 的审核信息。

我目前正在更新每个存储过程,这可能会导致集合中每个表的这 3 个操作中的任何一个。但它太容易出错并且太费时了,因为我有大量的表格。

请提供一种更好的方法,在时间和性能方面都可以更有效地实现这一目标。

4

1 回答 1

0

快速回答:只需确保记录所有将更改数据库的操作!

在我们的项目中,我们创建了一个单独的表,其中包含以下字段

   Date_And_Time     Actions     UserID     Part_of_Program

每当用户执行插入、更新或删除命令,或登录或退出系统,或系统在我们的数据库中运行自动操作时,程序会自动在此处插入一条记录,告诉我们采取了什么行动,谁做了以及程序的哪一部分受到了影响。

..或者您可以编写代码来不断检查表的当前大小。如果大小发生变化,则将其记录在审计表中。如果大小增加,则插入数据。否则数据被删除。

于 2013-10-30T09:32:19.563 回答