SSIS技术问询:如何从SQL执行任务提取值用于表达式设置
在SSIS中提取SQL执行任务的记录数并控制后续任务执行
步骤1:创建存储记录数的变量
- 在SSIS包的「变量」面板中新建变量,建议命名为
User::RecordCount,数据类型选Int32(若表记录数可能超过20亿,改用Int64)。
步骤2:配置SQL执行任务的结果集
- 打开SQL执行任务编辑器,在「SQL语句」区域输入统计语句:
select count(*) as Is_Data from TABLE_NAME; - 切换到结果集选项卡,将「结果集」类型设置为单行(
count(*)仅返回一行结果)。 - 点击「添加」,在「结果名称」处填写
Is_Data(需与SQL中的别名完全一致),「变量名称」选择刚创建的User::RecordCount,确定保存。
步骤3:用优先约束控制后续任务
- 在SQL执行任务和目标后续任务之间,拖动箭头建立优先约束。
- 双击约束打开编辑器:
- 操作类型选择表达式和约束
- 约束选项选择成功(确保SQL任务执行成功后再判断条件)
- 在「表达式」框中写入判断逻辑,例如:
- 记录数大于0时执行后续任务:
@[User::RecordCount] > 0 - 记录数为0时执行后续任务:
@[User::RecordCount] == 0
- 记录数大于0时执行后续任务:
- 确定保存,后续任务将根据变量值决定是否执行。
注意事项
- 确保SQL执行任务的连接管理器配置正确,能正常访问目标数据库和表。
- 变量的作用域需覆盖SQL执行任务和后续任务,避免变量不可用。
内容的提问来源于stack exchange,提问作者SM079
相关产品推荐
相关产品推荐

