2013-12-13 103 views
0

我正在使用SSIS 2008.我有一個變量,它從配置文件中獲取它的值。我想將其值分配給另一個變量。爲此,我創建了另一個變量,並將其EvaluateAsExpression屬性設置爲TRUE,並將該變量(從配置文件獲取值)寫入其表達式中。但在運行時,任務不會發生。儘管沒有錯誤。SSIS變量作爲另一個變量的表達式

編輯 我做變量賦值的原因是,如果最終用戶的簡化版,給任何值在配置文件中的變量,我要分配一些默認值,這些變量,然後分配變量表達式到其他變量。所有這些都是我正在嘗試在腳本任務中完成的。不知道這是做這種事情的唯一方法。

+0

我很困惑。你指定你正在使用一個表達式,但你也試圖通過腳本任務分配?你可以請進一步編輯你的問題,可能與此過程的屏幕截圖和預期的輸入和輸出。 – billinkc

回答

1

我能夠得到這個工作沒有任何問題;我無法複製你的場景。以下是我所做的:

  1. 設置兩個包級字符串變量:「Var1」和「Var2」。
  2. 我打開了我的程序包配置(SSIS>程序包配置)並創建了一個新的映射,它從配置文件中設置我的Var1變量的Value屬性。 (有關包配置MSDN文章瞭解更多信息:http://msdn.microsoft.com/en-us/library/cc895212.aspx
  3. 在變量窗口(視圖>其它窗口>變量),我設定的表達我的VAR2等於

    @ [用戶:: VAR1]

以上步驟正確地爲Var2提供了從外部配置文件設置的Var1的值。爲了測試這個工作,我添加了一個腳本任務和

  1. 在腳本任務編輯器,添加用戶:: VAR2只讀變量
  2. 在我的腳本的身體,我添加以下代碼在運行時查看Var2的值:

    public void Main() MessageBox.Show(Dts.Variables [0] .Value.ToString()); }

在運行時,彈出的消息框顯示正確的值。

但我注意到,Var2的Value屬性在Variables窗口中並不總是顯示正確的值 - 有時它會顯示任何設置爲Var1的默認值的值。即使Variables窗口中存在這種差異,當在我的實際包代碼中使用Var2時,它始終設置爲正確的值。

+0

好心解釋你的第二步上面是什麼。你的意思是你包含Var1作爲可配置變量?有點困惑於「映射」 –

+0

我添加了一個鏈接到一個MSDN文章,解釋了Package Configurations,它可以更好地解釋並且比我以前更徹底。當你說你從一個配置文件中獲取一個值時,我認爲你正在使用Package Configurations。 –