【发布时间】:2011-02-17 17:47:24
【问题描述】:
我有一个 SSIS 包,其控制流包含一系列按顺序执行的 sql 任务。
我需要检查每个任务的标志,如果已设置则运行该任务,如果未设置则跳过并转到下一个。
这些任务中的每一个都执行一个存储过程。因此,如果未设置,我可以检查 proc 和“返回”。如果有的话,我正在寻找“SSIS”解决方案。
TIA
PS
【问题讨论】:
标签: sql-server sql-server-2008 ssis
我有一个 SSIS 包,其控制流包含一系列按顺序执行的 sql 任务。
我需要检查每个任务的标志,如果已设置则运行该任务,如果未设置则跳过并转到下一个。
这些任务中的每一个都执行一个存储过程。因此,如果未设置,我可以检查 proc 和“返回”。如果有的话,我正在寻找“SSIS”解决方案。
TIA
PS
【问题讨论】:
标签: sql-server sql-server-2008 ssis
我认为您的问题与我的问题相同,我想在控制流中控制“内联”任务的执行。
我发现的最简单的方法不涉及控制流对象之间的数据连接器上的表达式,而是使用控制对象本身的表达式并使用表达式设置“禁用”值。这种方式在执行时,对象要么被跳过,要么不基于表达式评估。
例如,我想根据名为“ExtractType”的变量是否等于“Full”来执行“执行 SQL 任务”来删除我的索引。如果是这样,那么我想在完全加载之前删除表上的索引。
【讨论】:
在您的控制流任务之间,单击箭头并选择编辑。当你这样做时,你会得到一个对话框,允许你检查任务的“约束”(成功、完成或失败),一个“表达式”(即你可以让你的执行 sql 任务返回一个值,将该值存储在一个变量,并检查表达式中该变量的值以确定是否继续沿您正在编辑的路径)、“表达式和约束”以及“表达式或约束”。除了逻辑之外,最后两个是相同的。 “表达式和约束”要求表达式和约束条件都为真,“表达式或约束”只要求表达式和约束之一的条件为真。
【讨论】: