我在SQL Server 2008和SSIS(BIDS)工作。我有一个平面文件,我想通过键入其中一列来导入到几个表中。列数因每个键而异。
例如,假设我有一个包含2种不同记录类型的平面文件 - 记录类型A和记录类型B."记录类型A"有5列。记录类型B的所有记录都有10列。第1列保存所有记录的记录类型标记(例如,' A' B')。因此,在导入这个1平面文件后,我想要所有的' A'记录进入我的A' A'桌子,我想要所有的' B'记录进入我的' B'表
如何在SSIS中实现这一目标?如果1平面文件被拆分为2个单独的平面文件,那么我可以为每个文件设置数据流任务。我已经读过,最好将所有记录导入到一个临时表中,然后编写一个SELECT语句来执行后续导入到表A和B中。但是,如果这是最佳实践,我不确定。
答案 0 :(得分:2)
您可以导入到临时表,但您也可以使用条件性拆分在SSIS中处理此问题。
您需要一个数据流,数据源可以从文件中获取数据。下一步应该是条件性拆分,表达式检查列的值:
[第1栏] ==“A”
[第2栏] ==“B”
以下是有关条件拆分任务在设置时的外观的屏幕截图:
适当地命名这两个输出,然后通过将输出连接到不同的任务,可以在条件分割后添加两种不同类型记录所需的处理。如果您只是想直接进入目标任务,那么可能会出现这种情况: