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

Execute Data Flow Task based on condition in SSIS

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

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

我怎样才能做到这一点?

编辑

这是将要执行的查询:

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

我不相信你能用你当前包的设计方式在 SSIS 中做你想做的事。

另一种方法:

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

虚拟脚本方法:

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

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