有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    以下更改可以完成数据审核

    1. 为所有txn表创建一个标识列
    2. 将此身份数据与事务数据一起提取到前端
    3. 为所有txn表创建历史记录表,并在每个事务之前使用版本ID移动原始数据
    4. 在UI中修改后,将数据传递回数据库,并使用SQL MERGE语句将数据与现有信息进行比较,以执行更新/插入/删除
    5. 使用以下逻辑将历史记录表中的最新版本与当前表中的数据进行比较

    插入新数据-如果当前表中存在标识键,但在历史记录表的最新版本数据中不可用

    其中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、字段名、旧值、新值、修改、修改人、修改日期/时间等列