【发布时间】:2025-12-05 08:10:01
【问题描述】:
在我的 SQL Server 2012 数据库中,160 个表上有 260 个触发器(每个 150 行),用于审计数据更改为三个用户表。
使用具有 160 个审计表的 160 个表的内置变更数据捕获选项好还是上述方法正确?
【问题讨论】:
-
我使用的是 microsoft sql server 2012
标签: sql triggers sql-server-2012 cdc
在我的 SQL Server 2012 数据库中,160 个表上有 260 个触发器(每个 150 行),用于审计数据更改为三个用户表。
使用具有 160 个审计表的 160 个表的内置变更数据捕获选项好还是上述方法正确?
【问题讨论】:
标签: sql triggers sql-server-2012 cdc
CDC 的工作方式略有不同:它连续读取事务日志并填充历史表。因此历史写入发生延迟并且不会停留在原始 DML 事务中。但是,CDC 表是由您无法控制的方法控制的,例如,如果您想附加一些未映射到原始表中任何数据列的附加列 - 这将是一个挑战。
您描述的触发器或存储的执行相同操作的过程就足够了。通常它们是通过代码生成方法生成的,不会使开发人员的生活复杂化。
另外,如果我没记错的话,您说您的 160 个表的历史记录存储在 3 个表中 - 这也是 CDC 无法做到的。这显然既不好也不好。
【讨论】: