如何从SQL Server数据库中获取最后添加或编辑的记录?

时间:2012-12-03 06:10:21

标签: sql-server migration db2

目前我正在进行数据库迁移,因为我正在使用Pentaho Kettle和Perl脚本。 迁移是从Tumor-registry SQL Server数据库到CIDER IBM DB2数据库。

在这项任务中我想实现两个目标。

  1. 初始迁移:在此我将所有行(例如100000)从Tumor-registry(SQL Server)迁移到CIDER(IBM DB2)。

  2. 后续迁移:Tumor-registry SQL Server数据库不断更新。 它不断添加新行或编辑已存在的行。

  3. 我已经找到了第一步,但在第二步中遇到了两个问题。

    a)如果用例如新的10行更新Tumor-registry SQL Server数据库;我怎样才能获得这10个新行?

    b)如果已更新已存在的10行,那么如何获取这10行并且还想知道哪些列已更新。

    My Tumor-registry数据库包含大约50个表。

    非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

使用TIMESTAMP数据类型创建一个新列。这将跟踪表中最新编辑的记录。

OR

您可以在Sql server中使用CHECKSUM功能。

答案 1 :(得分:0)

我认为这将通过使用triger

为您提供解决方案

在tablename上创建triger trigername 插入后 如 声明@ variablename_1数据类型; 从inserted中选择@ variablename_1 = column_name;

如果要在最后插入的anohter表中保存数据,则创建另一个表

插入表名值(@ variablename_1);

答案 2 :(得分:0)

您可以使用IBM Change Data Capture,它将获取源数据库中的所有DDL和DML,并在目标数据库中适当地复制它们。

http://www-01.ibm.com/software/data/infosphere/change-data-capture/

似乎其他供应商还有其他解决方案,请查看:http://en.wikipedia.org/wiki/Change_data_capture