2013-12-09 36 views
0

這裏是什麼樣的SQL表看起來像一個例子:SSIS - 從SQL表導出到基於第一列多個平面文件值

Name Class Grade 
Jesse English A 
Jesse Math C 
Jesse History A 
Scott Math B 
Scott History B 
Scott English A 
Mike History A 
Mike English D 

我試圖讓SSIS動態創建一個平面文件每個人。例如:

平面文件名:傑西

Name Class Grade 
Jesse English A 
Jesse Math C 
Jesse History A 

平面文件名:斯科特

平面文件名:邁克

Name Class Grade 
Mike History A 
Mike English D 

我可以很容易地創建一個sql表和平面文件之間的靜態鏈接,但我計劃在表中添加很多人,否則會導致我爲每個表創建數據流任務。這不會很理想。我希望爲每個循環標識Name列中的不同值,然後將合格的行輸出到平面文件中。

回答

2

首先運行一個查詢,以找到獨特的學生的一個記錄:

select distinct name from myTable 

然後使用foreach循環來,但並運行下面的參數化查詢:

SELECT class, grade 
FROM myTable 
WHERE name = ? 

使用派生列將名稱包含在結果集中。

把它放在平面文件目標中。輸出文件的連接字符串將是動態的。

這些是步驟。如果你遇到困難,網上有很多例子,或隨意問。

1

這是你的包應該怎麼樣子:

in the control flow

in the data flow

右點擊 - >可變1.student - >對象 2.students - >字符串(控股結果

在數據流 - 連接管理器 - 右鍵 - 平面文件連接 - >屬性 - >表達式中提到它是這樣的:: "C:\\Users\\user\\Desktop\\ssis_stuff_from_stackoverflow\\citys.txt-"+ @[User::student] +".txt"

包成功地執行影響3行和在folder path

here is one good example

添加3個平面文件
相關問題