如何从文件中获取文件名,在SQL表列中查找该值,然后使用SSIS从其他列返回值?

时间:2014-04-20 13:58:20

标签: sql-server-2008 tsql foreach ssis file-rename

使用SSIS(2008)和T-SQL:如何从文件中获取文件名并在SQL表列中查找该值,然后从另一列返回值?

我有一个包含产品的.jpg图像文件的文件夹。所有文件名的格式均为eancode.jpg,例如1234567891023.jpg。每个文件名都是唯一的:每个产品的每个图像文件一个eancode。

productID(主键,varchar)和eancode(varchar)存储在同一个SQL表中(当然没有.jpg扩展名。)

我想要做的是将文件从eancode.jpg重命名为productID.jpg。

这是我想到的过程,例如:

FolderA中的文件:

  • ean1.jpg
  • ean2.jpg
  • ean3.jpg

步骤/任务:

  1. 从ean1.jpg获取文件名ean1
  2. 在表格列EANcode中查找ean1
  3. 返回相应的productid:从表中选择productID,其中EANcode =' ean1'
  4. 将步骤3中的返回值存储到包变量(?)
  5. 使用步骤4的存储值重命名文件名
  6. 在所有图像的foreach循环中执行步骤1 - 5;如果找不到匹配项,则不应对文件执行任何操作。
  7. 我的问题主要集中在第2步 - 第4步。 谢谢!

1 个答案:

答案 0 :(得分:0)

您建议的解决方案可以完美运行。将执行sql任务的结果集(常规选项卡的中间)设置为单个值,然后将基于零的结果值从结果集选项卡中映射到包变量