我有两个数据库驻留在两个不同的SQL服务器(服务器A和服务器B)中,我试图在一个名为" Name"的公共列上运行SSIS中的MERGE连接。我得到了两个表格" Name"我确实将SortKey设置为1,而#34; Name"两个源OLE DB输出属性中的列。然后,我从两个表中选择列以显示和使用INNER连接,并在服务器C中选择目标空表(两个源服务器中的两个列名称)作为目标OLE DB服务器。一切看起来都很好,包裹成功执行,没有任何错误和警告。
但是,在542行中,只有35行匹配,它应匹配405.当我在Merge Join转换中指定LEFT JOIN时,我得到542行,其中507行具有来自服务器B的NULL值(这再次意味着它找到了只匹配35行而不是全部405)。
尝试在两个来源的名称列上使用RTRIM,但没有成功。 尝试在两个来源的名称列上使用UPPER案例也没有取得任何成功:(
当我使用Invoke-SqlCommand在powershell中使用相同的2个数据库进行JOINS时,我没有遇到此问题,但是当我使用SSIS方式时,它只在35行上加入。
有人可以提出可能存在的问题吗?
答案 0 :(得分:2)
发现了这个问题。两个源表没有排序,所以我必须在两个源上写一个SQL语句到ORDER BY Name,它完美地工作。希望它可以帮助别人!