SSIS Union All不会返回所有记录

时间:2014-02-13 22:48:38

标签: sql sql-server ssis union-all

非常初学者的问题。我有一个简单的脚本执行查找不同表中的记录 - 在这种情况下,医生被指派治疗患者。由于缺乏数据质量控制,许多记录没有分配正确的医生ID,因此查找返回不匹配的输出。然后,我必须为这些记录创建一个假医生。之后我想将2个记录集合并为1.

在我的测试数据库中,我总共有20 599条记录。查找转换返回9 124个记录,提供不匹配的输出和11 475个记录。我不明白的是,当我做一个Union All时,结果只能得到17 885条记录。 (请看下面的截图,问题出现@ Find Servicing Doctor然后Union All)

之前从未遇到过这个问题。我在这个脚本的其他部分多次使用相同的技术,它们都返回正确数量的记录。任何帮助将不胜感激

Screenshot showing the number of records

2 个答案:

答案 0 :(得分:0)

你可以在没有2条路径的情况下进行查找。

  1. 您只需在第一个查找窗口中设置<忽略失败&#39;。
  2. 添加&#39;派生列&#39;元素,并把这样的东西:

    ServicingDoctor-Replace&#39; ServicingDoctor&#39; -isnull(ServicingDoctor)? &#34; NA&#34; :ServicingDoctor

答案 1 :(得分:0)

当更改源或目标中字段的格式时,就会出现此问题。 Union all转换不会自动更新其输出字段的格式,这显然会导致一些通过转换但不再满足格式要求的记录消失。删除联盟的所有转换,重新创建一个新转换,然后将其与其他转换合并即可解决此问题。