1. 程式人生 > >SSIS【Foreach 迴圈容器_Foreach ADO 列舉器】(逐行讀取某個表)

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任務。


3.編輯 最上面那個【執行 SQL 任務】,輸入相關查詢引數,選擇【完整結果集】:


4.在選擇【結果集】中,建立一個變數,型別為【Object】,結果名稱為 “0”(結果集型別為完整結果集或XML,則必須使用 0 作為結果集名稱)


5.好了,現在編輯【Foreach 迴圈容器】,選擇【Foreach ADO 列舉器】,ADO物件源變數為【User::var_myResult】,列舉模式為【第一個表中的行】


6.建立一個整型變數id,索引取0,則為第一列,第一列型別id為整型。迴圈容器編輯完成!


7.編輯容器內的平【執行 SQL 任務】,設定如下。因為逐行取的只有id,所以我按id更新某個表。


8.引數對映中新增變數,傳遞變數為id,id為整型int,所以取型別long。引數名稱為0,即第一個問號,多個引數可按順序去名稱。


9.設計完成!執行!結果如下: