1
我有两个由供应商每晚生成的数据集。这两个表都不包含主键,但行是唯一的。鉴于没有主键,是否有使用SSIS来确定添加,更新或删除了哪些行的方法?我发现的所有信息似乎都指向需要主键。只需对行进行编号就行不通,因为表格每晚都进行重建。被比较ssis确定没有主键的更新行
该表可能是这个样子:
TABLE 1 TABLE2
Name Facility Access Name Facility Access
---- -------- ------ ---- -------- ------
Bob NJ Full SA Bob NJ Full SA
Bob NJ Full AB Bob NJ Full DS
Bob GA Full SA Bob GA Full SA
Bob GA Full AB Bob FL Full SA
Bob CA Full AA Janet CA Full AA
有没有人遇到过类似的情况吗?我似乎无法找到一种方法来确定是否在没有主键的情况下插入或更新(或删除或更新)了一行。有什么想法吗?
谢谢您的考虑。
在那里是的。由于没有业务关键字,因此您将无法确定此新行是对现有行还是对新行进行更新。你可以在所有键上计算一个hashsum,并至少确定我是否已经有了这些hashsum,然后删除不再存在的内容并添加什么是“新”,但我没有一个优美的模式。除非你把很多咖啡因和粗俗称为模式。 – billinkc
@billinkc您可以每晚创建视图,然后加入视图以查看是否有更新? –
由于行是唯一的,所以在概念上,该行是主键,因此无论物理数据库事件如何,都将只进行插入和删除操作,通过使用合并连接(完全连接)比较整个行可以找到这些操作。 – Jayvee