问题是我将数据导入到关系表中,其中数据源是 XML 文件 + XSD 模式。XML 源有几个输出,节点之间的关系由 SSIS 在列中创建为 order_id(生成的主键值不在 XML 中),让我们说订单详细信息,我们得到外键 order_id。
文件被导入,我们在订单和订单详细信息之间具有正确的引用完整性,但密钥仅在每个文件中是唯一的,因此如果再次导入相同的文件,ssis 会生成/使用相同的 id。
如何确保唯一性/控制 id 的生成方式。
我尝试在有效的订单表中使用标识列作为 order_id,但它不会向下传播到订单详细信息等参考表......
例如,如果我们有
<order some attributes ...>
<orderdetails some attributes ...></orderdetails>
<orderdetails some attributes ...></orderdetails>
</order>
如果我们让 ssis 导入行,我们会得到类似的结果:
订单表
order_id = 4 ,其余数据列
订单明细表
第 1 行 orderdetail 列,order_id=4 第 2 行 orderdetail 列,order_id=4
一切正常,但我不明白显然是半随机的 id = 4 是如何生成的
如果使用增量密钥,我会得到(假设种子从 1 开始)
订单表
order_id = 1 ,其余数据列
订单明细表
第 1 行 orderdetail 列,order_id=4 <--与之前 SSIS 生成的相同 第 2 行 orderdetail 列,order_id=4 <--与之前 SSIS 生成的相同
我希望外键的 id 为 1 的详细信息,所以我想我错过了一些中间步骤/设置,以便在导入 XML 数据时保持引用完整性。
任何指针将不胜感激。