2017-10-04 129 views
0

我有一個SSIS包含一個變量(對象),它在腳本任務(類似於:字母{A,B,C,D})中取值),以及一個foreach容器每封信。傳遞參數SQL作業

我想爲這個SSIS包創建一個作業。我如何通過作業中的變量「字母」?如果可以,我想在列表中添加更多字母;我想從作業中創建這個變量。

例如:字母{A,B,C,d,E}

我知道這是這樣的:

聲明@l
組@l = 'A'
select @l ='/ SET \ Package.Variables [User :: letters] .Proprieties [Value]'

對不起,如果不清楚。我不知道如何解釋。

+2

您需要創建包參數。然後你可以提供值,當你設置你的工作 – PacoDePaco

+0

是啊......但現在我有一個列表,我創建它在腳本任務。我如何從工作中創建它。因爲這個列表可能有不同數量的參數。 (有時候列表可能有4個,有時可能有20個)。我必須在列表中添加從作業傳入的參數(在我的變量中) – istuc

回答

0

其實你需要創建一個項目參數,並在腳本任務的變量列表中傳遞你的($ project)參數。你也可以將它定義爲需要或不需要的,因此當它在作業中沒有被通知時,你可以在包中定義一些邏輯並分配一個新的值,就像你說的{A,B,C,D,E}。

0

我會做些稍微不同的事情,但我做了一個很大的假設。

您可以通過某種方式定義要循環的值。對於這個例子,我會假設你可以查詢你的值。

設置一個名爲LoopList的變量作爲數據類型對象。

設置VAR LoopItem作爲字符串

Exec的SQL對象:

  1. 組數據連接。
  2. 設置結果設置爲整個結果集,
  3. 在結果集標籤映射到LoopList可變
  4. 添加您的查詢像選擇VAL從表或什麼的。

foreach循環:

  1. 收藏是的foreach ADO
  2. 選擇ADO源LoopList
  3. 地圖LoopItem到索引0

現在你可以運行任何你想做的事,而不必傳遞參數。