根据SSIS中的条件执行数据流任务

时间:2015-06-17 08:04:32

标签: sql-server ssis

我是SSIS的新手,我正在构建一个导入文件的包。我有一个执行SQL任务,它将执行一个SQL语句,它将返回需要导入的文件,但这些文件需要根据导入的文件进入不同的表。

我的foreach容器中有2个数据流任务,但现在基于它需要执行其中一个的文件类型

我怎样才能做到这一点?

enter image description here

修改

这是将要执行的查询:

SELECT ReconMedicalAidFile.fReconMedicalAidFileID,   ReconMedicalAidFile.fReconMedicalAidID, 
ReconMedicalAids.fMedicalAidID, ReconMedicalAidFile.fFileName, 
ReconMedicalAidFile.fFileLocation, ReconMedicalAidFile.fFileImportedDate, ReconMedicalAidFile.fNumberRecords, ReconMedicalAidFile.fUser, 
ReconMedicalAidFile.fIsImported
FROM ReconMedicalAidFile INNER JOIN
ReconMedicalAids ON ReconMedicalAidFile.fReconMedicalAidID = ReconMedicalAids.fReconMedicalAidID
WHERE (fIsImported = 0) AND (fNumberRecords = 0)

因此该条件基于 fMedicalAidID

2 个答案:

答案 0 :(得分:3)

虚拟脚本方法: DummyScript

在两个优先约束的表达式中,您将评估由第一个SQL任务或脚本任务设置的变量。 enter image description here

现在,数据将根据变量的值向下流向两个数据流路径中的一个。 脚本任务可以为空,也可以执行设置变量所需的逻辑。

答案 1 :(得分:1)

我不相信您能够按照当前包的设计方式在SSIS中做您想做的事。

另一种方法:

  1. 在第一个Conditional Split任务
  2. 之后添加Execute SQL任务
  3. 根据文件类型拆分
  4. 为每种文件类型
  5. 创建单独的ForEach LoopExecute SQL任务