我有一個SSIS包,它使用腳本和一個foreach容器更新一對夫婦的表以及其他一些東西。我使用SqlConnection
和SqlCommand
在foreach容器之前調用的腳本任務此查詢:如何在SSIS中使用foreach循環容器遍歷多維數組?
SELECT TOP 10 DirectoryID, DirectoryPath FROM ProjectDirectory ORDER BY LastAudit
和正在使用SqlDataReader
將其添加到多維數組[10.2]。我將該數組賦給一個對象變量DirectoryList
,以便我可以在foreach循環容器中遍歷它。它應該看起來像{{「1」,「C:\ Folder1」},{「2」,「C:\ Folder2」},...}我相信。
問題是幾天前我剛開始使用這個軟件,並且對foreach循環容器如何通過變量DirectoryList
循環感到困惑。此刻,在容器的集合選項卡中,我將Enumerator設置爲Foreach From Variable Enumerator,變量設置爲User::DirectoryList
。我將變量User::DirectoryID
設置爲索引0,而User::DirectoryPath
設置爲索引1.我試圖讓它通過數組的頂層進行循環,以便在每個循環中將ID和路徑變量分配爲「1」和「C:\ Folder1」,然後下一次它通過它們分配給「2」和「C:\ Folder2」等循環時,我有一個腳本組件使用路徑來查找一些信息,而我使用該id來更新SQL表的正確行。
爲了進行調試,我讓它給我看第一次迭代的ID和路徑MessageBox.Show(Variables.DirectoryID + ", " + Variables.DirectoryPath)
,它顯示「8,8」。 8對應於應該首先顯示的行的id。下次運行時,它會給我兩次正確的路徑,「C:\ Folder1,C:\ Folder1」。顯然變量映射不起作用,它將兩個變量映射到同一個索引。在任何情況下,它不工作,所以我在想,無論是(也可能是兩者),Foreach From Variable Enumerator不是我應該選擇的那個,或者我不能在一個foreach容器中使用多維數組。我搜索了一下,沒有發現,這可能很難理解,但有什麼建議嗎?
真棒的感謝!我最終使用了執行SQL任務,因爲就像你說的那樣,這就是腳本的全部功能。現在我只想弄清楚如何將DateTime變量傳遞給不同的執行SQL任務並更新表中的一行。我會谷歌周圍,謝謝! –