2012-02-10 80 views
2

我有一個包,我正在使用foreach循環來遍歷數據庫。我傳遞一個字符串,它循環所有的數據庫。一切都很完美,直到這裏。在Foreach循環內增加一個變量並使用它-SSIS

我想實現的是對於每個數據庫它循環,它應該增加一個變量1.假設如果我必須循環訪問總共5個數據庫。一個包級變量(myvariable = 24)被聲明爲24.對於每個數據庫它循環它應該增加變量1.

爲此,我已經在foreachloop容器內創建了一個腳本任務。 ReadWriteVariables作爲myvariable。在腳本編輯器中。我有以下代碼

public void Main() 
     { 
    int varbl = Convert.ToInt32(Dts.Variables["User::myvariable"].Value.ToString()); 
    varbl++ 
     } 

然後我將該增量值傳遞給storedprocedure。但它並沒有增加。它仍然採用默認值24.任何想法如何增加foreachloop容器中的變量?

回答

7

您創建的變量varbl只存在於腳本上下文中。

遞增SSIS變量,你需要做的是這樣

public void Main() 
{ 
    int varbl = Convert.ToInt32(Dts.Variables["User::myvariable"].Value.ToString()); 
    varbl++; 
    Dts.Variables["User::myvariable"].Value = varbl; 
} 

或變量User::myvariable不會改變

相關問題