我们从客户那里收到数据馈送,每次都获得大致相同的架构,尽管在客户端使用 3rd 方应用程序时它可能会发生变化。当我们收到数据文件时,我们将数据导入一个暂存数据库,其中每个数据文件(学生、出勤等)都有一个表。然后,我们希望将该数据与我们已经存在于该客户数据库中的数据进行比较,并查看上次运行中哪些数据已更改(列已更改或整行可能已删除)。然后,我们希望将更新的值或删除的行写入审计表,以便我们可以返回查看从之前的数据导入中更改了哪些数据。我们不想更新数据本身,我们只想记录两个数据集之间的不同之处。然后,我们将从客户数据库中删除所有数据,并从新数据文件中完全导入数据而不更改(此指令已下达,无法更改)。最大的问题是我需要动态地执行此操作,因为我不确切知道我将从我们的客户那里获得什么模式,因为他们可以对他们的表进行自定义。我需要能够动态地确定目标中有哪些表及其结构,然后查看源并比较值以查看数据中发生了什么变化。我将从我们的客户那里得到,因为他们可以对他们的桌子进行定制。我需要能够动态地确定目标中有哪些表及其结构,然后查看源并比较值以查看数据中发生了什么变化。我将从我们的客户那里得到,因为他们可以对他们的桌子进行定制。我需要能够动态地确定目标中有哪些表及其结构,然后查看源并比较值以查看数据中发生了什么变化。
附加信息:源上没有 ID 列,尽管有几列可用作构成不同行的代理键。
我希望能够为每个表通用地执行此操作,而不必在其中硬编码值,尽管我可能必须为单独的参考表中的每个表的代理键执行此操作。
我可以使用 SSIS、SP、触发器等,无论哪个更有意义。我已经查看了所有内容,包括 tablediff,但似乎没有一个拥有我需要的一切,或者一旦我进入它们,逻辑就开始变得极其复杂。
当然,任何人都已经做过类似的事情的任何具体例子将不胜感激。
让我知道是否有任何其他有用的信息。
谢谢