SSIS【Foreach 循环容器_Foreach ADO 枚举器】(逐行读取某个表)

SQL Server 2008 R2

SSIS_Foreach 循环容器_Foreach ADO 枚举器(逐行读取某个表)


1.创建如下表:

--	drop table mytab

create table mytab(id int ,name varchar(30))

insert into mytab values(1,'aaa'),(2,'bbb'),(3,'ccc'),(4,'ddd')

select * from mytab
/*
id	name
---------
1	aaa
2	bbb
3	ccc
4	ddd
*/

2. 创建如下图的控制流。以下操作意思是:执行sql查询某个表,将结果集传递到循环容器中,容器逐行取数来执行里面的sql任务。

SSIS【Foreach 循环容器_Foreach ADO 枚举器】(逐行读取某个表)_第1张图片


3.编辑 最上面那个【执行 SQL 任务】,输入相关查询参数,选择【完整结果集】:

SSIS【Foreach 循环容器_Foreach ADO 枚举器】(逐行读取某个表)_第2张图片


4.在选择【结果集】中,创建一个变量,类型为【Object】,结果名称为 “0”(结果集类型为完整结果集或XML,则必须使用 0 作为结果集名称)

SSIS【Foreach 循环容器_Foreach ADO 枚举器】(逐行读取某个表)_第3张图片


5.好了,现在编辑【Foreach 循环容器】,选择【Foreach ADO 枚举器】,ADO对象源变量为【User::var_myResult】,枚举模式为【第一个表中的行】

SSIS【Foreach 循环容器_Foreach ADO 枚举器】(逐行读取某个表)_第4张图片


6.创建一个整型变量id,索引取0,则为第一列,第一列类型id为整型。循环容器编辑完成!

SSIS【Foreach 循环容器_Foreach ADO 枚举器】(逐行读取某个表)_第5张图片


7.编辑容器内的平【执行 SQL 任务】,设置如下。因为逐行取的只有id,所以我按id更新某个表。

SSIS【Foreach 循环容器_Foreach ADO 枚举器】(逐行读取某个表)_第6张图片


8.参数映射中添加变量,传递变量为id,id为整型int,所以取类型long。参数名称为0,即第一个问号,多个参数可按顺序去名称。

SSIS【Foreach 循环容器_Foreach ADO 枚举器】(逐行读取某个表)_第7张图片


9.设计完成!运行!结果如下:

SSIS【Foreach 循环容器_Foreach ADO 枚举器】(逐行读取某个表)_第8张图片SSIS【Foreach 循环容器_Foreach ADO 枚举器】(逐行读取某个表)_第9张图片




你可能感兴趣的:(SSIS)