如果使用Java技术发生任何更改,我将尝试检测某些sql server 2008表的所有行。我研究了一些方法,例如使用时间戳列,更改跟踪机制,更改数据捕获。但是所有上述方法都需要在数据库中进行一些自定义,如下所示:1.Timestamps列应出现在每个表中。2.Change跟踪要求每个表中都有主键。3.Change Data Capture需要一些系统表的创建和其他自定义。我需要一些不需要在数据库中进行大量自定义的方法,因为数据库至关重要,并且不允许更改配置设置。任何人都可以在这方面提供帮助或建议吗? 最佳答案 以下更改可以完成数据审核为所有txn表创建一个标识列。将此标识数据与事务数据一起提取到前端。为所有txn表创建历史记录表,并使用版本ID在每次事务处理之前移动原始数据。在UI中进行修改后,将数据传递回数据库,并使用SQL MERGE语句将数据与现有信息进行比较以执行更新/插入/删除使用以下逻辑将历史记录表中可用的最新版本与当前表中的数据进行比较插入了新数据-如果当前表中存在一个身份密钥,而在历史表的最新版本数据中则不可用C.IdentityColumn不在的位置(从历史记录H中选择identitycolumn)数据已删除-如果历史表的最新版本数据中存在身份密钥,而当前表中不存在身份密钥。H.IdentityColumn不在的位置(从当前C中选择identitycolumn)数据已更新-当前表和历史记录表的最新版本中均存在IF身份密钥,并且修改了任何一列数据在哪里(C.IdentityColumn = H.IdentityColumn)和(C.Col1 H.Col1要么C.Col2 H.Col2要么C.ColN H.ColN)C-当前表H-历史记录表使用上述逻辑,可以在单独的审核表中跟踪已修改的数据,该表可以具有诸如记录ID,字段名称,旧值,新值,修改,修改者,修改日期/时间等列 10-07 23:05