SSIS使用文件名的一部分作为Foreach循环容器中的变量

时间:2015-02-25 23:43:16

标签: c# sql sql-server visual-studio-2012 ssis

我希望 SSIS 使用部分文件名作为foreach循环中的变量。

Foreach Loop Container内,我想取一个文件名,即 7788-Trailer Park Boys ,并在“ - ”标记处拆分,并设置 7788 作为变量。

然后我想使用该变量来更新Foreach Loop Container中引用的表。因此,将一个表中的所有列更改为 7788 。这可以在没有自定义脚本的 SSIS 中轻松完成吗?

如果可以,我需要使用哪些 SSIS 组件?

提前谢谢。

修改

我使用此链接开始工作:

此链接帮助我实现了目标:http://sqlage.blogspot.com/2013/11/ssis-use-variable-in-execute-sql-task.html

以下是我在执行SQL任务中使用的代码:

declare @promoid varchar(255);

set @promoid = ?

update hr_sandbox.dbo.tbu_tracking_block
set PromoID = substring(@promoid,charindex('blocks\', @promoid)+7, len(@promoid)-charindex('.xlsx', @promoid))

我的代码唯一的问题是我的变量是完整的路径名,所以我不得不将其切片以获取文件名。有没有更简单的方法来提取完全限定文件路径的文件名?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用执行SQL任务。您必须将查询参数映射到update语句中的变量。

您可以在此处查找如何操作: https://www.simple-talk.com/sql/ssis/passing-variables-to-and-from-an-ssis-task/