我是SSIS的新手,所以请耐心等待。
我为SQL Server 2008创建了一个Integration Services项目,用于将数据从旧数据库导入到新数据库。我需要做的一件事是将两个旧源表中的数据导入一个新的目标表。
最好的方法是什么?
我可以使用tsql通过简单的内部联接查询轻松查看我想要的结果,但使用SSIS包没有任何运气。我目前的方法是一个三步过程:
此过程在第一步失败,而不是在查找步骤,并且失败并显示错误“行在查找期间没有匹配”。外键不能为空,显然主键也不能。我在步骤中使用了一个SQL语句,所以我可以确保我没有在列中得到任何空值日期(有一些),但我仍然得到错误。如果我将第一步失败路径输出到平面文件目的地,我会得到一个空的CSV(在调试模式下观看表示~600k记录进入平面文件)。
我在这一点上很难过,这似乎应该是超级简单的任务。我已经在网上搜索了答案,并发现这个link听起来与我遇到的问题完全相同,但更改缓存设置并没有帮助。
帮助表示赞赏!
答案 0 :(得分:3)
听起来你的查找不匹配。我手动运行查询并验证OLE DB SOurce都没有空的foriegn键;并且每个外键都匹配查找表中的内容。
这里有一个更简单的方法。使用您在OLE DB SOurce中提到的内部联接查询。不要使用表选择,提供带有连接的SQL查询。这让SQL Server完成了所有繁重的连接,然后SSIS可以进行传输。