使用文件名作为键列在单个SQL Server表中批量导入txt文件

时间:2018-09-04 07:58:28

标签: sql-server ssis

我有一个txt文件文件夹。文件名的格式为[integer] .txt(例如1.txt,2.txt等)。

我有一张桌子,比如说TableA(id int不为null,内容为varchar(max))

我想要一种方法,将那些文件的内容批量导入TableA,并从文件名中填充id列。每个文件将是表中的单个记录。这不是定界文件。

我已经研究了SSIS和平面文件源,但是我找不到选择文件夹而不是单个文件的方法(this回答说可以做到,但是我找不到方式)。

Bulk Insert是我的下一个赌注,但是我不确定如何用文件名填充id列。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

对于任何可能需要它的人,我最终通过以下方式解决了这个问题:

  • 使用ForEach循环容器(感谢提示@Panagiotis 卡纳沃斯)

  • 使用平面文件源,将其设置为行定界符和列
    分隔符我知道文件中不存在的序列(例如'$$$')

  • 将文件名分配给变量,并将完整路径分配给计算值 变量(有关如何分配变量,请检查this great post

  • 使用派生列在输出中传递文件名(签出 this answer