【发布时间】:2021-08-01 15:47:08
【问题描述】:
我在 Azure SQL Server 中有两个表,当我在“GroupID”上直接使用 SQL Query 进行查询时,我得到了 5,698 行的预期输出。
但是,当我在 SSIS 中使用 Merge Join 使用内连接仅合并了 4,832 行。
我检查了元数据类型(都是 DT_I4 和排序,位置 1):
“名称”“数据类型”“精度”“比例”“长度”“代码页”“排序键” 位置”“比较标志”“源组件”
“GroupID”“DT_I4”“0”“0”“0”“0”“1”“”“INDEX”
“名称”“数据类型”“精度”“比例”“长度”“代码页”“排序键” 位置”“比较标志”“源组件”
“GroupID”“DT_I4”“0”“0”“0”“0”“1”“”“资产......”
许多帖子都在谈论数据类型不一致或尝试加入字符串。我检查了源数据是否会导致完整的内部联接,但我只是看不出是什么导致 SSIS 内部联接无法按预期工作。
有什么想法吗?
谢谢
【问题讨论】:
-
所以你有一个内部连接正在删除预期值。下一步是从左侧识别应该匹配但不匹配右侧值的值。然后右边的值应该匹配但没有。最后,确认匹配的值符合预期。从您显示的内容来看,您似乎正确使用了该组件,因此我们假设数据与您的假设不符。
-
这是 ADO.NET 还是 OLEDB 源?
-
是的,重新删除值是正确的。数据源是 OLE 和目标 ADO。我决定不使用合并连接,而只是在数据源中使用 SQL 命令来执行我知道有效的内部连接。也许不是完美的解决方案,但会阻止项目向前发展。感谢您对billinkc 发表评论
标签: merge ssis inner-join