ETL设计之-Foreach 循环容器(Foreach 循环容器之(Foreach ADO 枚举器))

本文介绍如何使用 SSIS 中的 ForeachADO 枚举器来遍历数据库表中的记录,并通过示例演示如何更新 Email 类型表的状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇介绍了Foreach 循环容器之(Foreach 文件枚举器),主要是关于多文件批量导入数据仓库的问题。今天介绍的还是Foreach 循环容器,主要介绍Foreach ADO 枚举器,循环表中的每一条记录。

介绍需求:

    想更新某一个表的状态,条件另一个表是否有这条记录。(如果用T-SQL执行相当简单,建立关系后更新即可)

执行环境:

  1. --Email基本信息表   
  2. CREATE TABLE EMailTest(ID INT, NAME VARCHAR(20),Email Nvarchar(50))
  3. GO
  4. INSERT INTO EMailTest(ID,NAME,Email)
  5. SELECT 1,'abc','abc@sina.com'
  6. UNION ALL
  7. SELECT 2,'cde','cde@sina.com'
  8. UNION ALL
  9. SELECT 3,'XYZ','XYZ@sina.com'
  10. go
  11. --Email类型表
  12. CREATE TABLE EmailType(ID INT,EmailType Nvarchar(50))
  13. GO
  14. INSERT INTO EmailType(ID,EmailType)
  15. SELECT 1,''
  16. UNION ALL
  17. SELECT 2,''
  18. GO

效果:

    使用SSIS中的执行SQL任务、Foreach 循环容器更新Email类型表的状态。

 

步骤:

    a) 获取EmailTest表的所有数据集

       b)配置数据的结果集


       c)配置Foreach循环容器,选择枚举器,(Foreach ADO 枚举器、ADO数据源MyDataSet)

 

         d)新建变量映射(此处:用户ID)

   e)在 Foreach 循环容器中拖入一个执行SQL任务,配置如下图:

 

 

相关更新的SQL 语句为:

  1. UPDATE EmailType SET EmailType='修改' WHERE ID=?

      f)配置Foreach 循环容器中SQL任务中的参数映射。如下图:

          注意:参数如果是int,在数据类型选择LONG类型,否则会报参数失败。导致更新失败或者不更新。

    g)整个ETL过程如下图:

 

    h) 整个流程图如下:

    

 

    i)查看执行结果。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值