我是 SAP 安装之上的 BI 经理。我有一个 SAP 应用程序向其写入数据的 SAP DB。为了让环境在不加载 sap 的情况下进行查询,我在服务器上镜像了 SAP DB,它工作正常。
每天晚上我都会加载完整的数据,现在它运行良好。我知道在某个地方,我将不得不开始进行增量更新。
如果我知道表中的哪些行已被修改或添加,以及何时修改或添加,这将容易得多。是否可以在更新或创建表时写入表的目标服务器上创建触发器?很多时候,没有指示在源表中创建行的日期。我不太熟悉镜像和复制的规则
我是 SAP 安装之上的 BI 经理。我有一个 SAP 应用程序向其写入数据的 SAP DB。为了让环境在不加载 sap 的情况下进行查询,我在服务器上镜像了 SAP DB,它工作正常。
每天晚上我都会加载完整的数据,现在它运行良好。我知道在某个地方,我将不得不开始进行增量更新。
如果我知道表中的哪些行已被修改或添加,以及何时修改或添加,这将容易得多。是否可以在更新或创建表时写入表的目标服务器上创建触发器?很多时候,没有指示在源表中创建行的日期。我不太熟悉镜像和复制的规则
解决此问题的最简单方法可能是更新您的表以添加一timestamp
列,并将其默认设置为当前版本项。您可以查看here以获取更多信息,但格式基本上如下......
ALTER TABLE <tablename> ADD timestamp
如该链接中所述,您不需要指定列名,因为它会在插入/更新期间自动开始跟踪时间戳。
请注意,此解决方案不会为您提供人类可读的时间 - 给定的项目是唯一的(只是易于版本控制的东西)。如果您需要时间,可以创建一个DATETIME
默认为的列GETDATE()
(有关更多信息,请参见此处)。当您插入/更新一行时,您将忽略在该特定列中插入/更新任何内容,并且DATETIME
将为您添加当前。