java确定sql server中定期更新或插入的行
如果使用java技术发生任何更改,我将尝试检测一些sql server 2008的所有行
我研究了一些方法,如使用时间戳列、更改跟踪机制、更改数据捕获
但上述所有方法都需要在数据库中进行一些定制,如下所示:
1.Timestamps column should present in each table.
2.Change tracking require primary key in each table.
3.Change Data Capture require some creation of system tables and other customizations.
我需要一些不需要在数据库中进行大量定制的方法,因为数据库是至关重要的,不允许更改配置设置
有人能在这方面提供帮助或建议吗
# 1 楼答案
以下更改可以完成数据审核
插入新数据-如果当前表中存在标识键,但在历史记录表的最新版本数据中不可用
其中C.IdentityColumn不在(从历史H中选择IdentityColumn)
数据已删除-如果历史记录表的最新版本数据中存在标识键,而当前表中不存在标识键
其中H.IdentityColumn不在(从当前C中选择IdentityColumn)
数据更新-如果当前表和最新版本的历史记录表中都存在标识键,并且任何一列数据都已修改
其中(C.IdentityColumn=H.IdentityColumn) 和 ( C.Col1<>;H.Col1 或 C.Col2<>;H.Col2 或 C.ColN<>;科恩 )
C-当前表格 H-历史表
使用上述逻辑,可以在单独的审核表中跟踪修改后的数据,该表可以包含记录ID、字段名、旧值、新值、修改、修改人、修改日期/时间等列