web-dev-qa-db-ja.com

2つの変数を設定するSSIS式

SSIS内の「式タスク」を使用して、2つの変数を単純に初期化/設定しようとしています。この一見単純な作業で、ステートメントを分離する方法がわからないので、私は気が動転しました。

@[User::testVariable]="1"  
@[User::testVar2]=3

これは解析エラーを引き起こし、私は多くのドキュメントを読んで無駄になりました。ステートメントはどのように区切られていますか?変数がたくさんあるので、複数の式タスクを使用する必要がないことを願っています...ありがとうございます

12
LearnByReading

一度に設定できる変数は1つだけです。

実行時に変数の値を変更するには、式またはスクリプトタスクが必要です。式はあまり柔軟ではなく、スクリプトタスクには.Netの知識が必要です。そのため、MicrosoftはSSIS 2012に式タスクを導入しました。これにより、実行時に1つの変数の値を設定できます。 欠点は、2008では利用できず、一度に1つの変数しか設定できないことです

http://Microsoft-ssis.blogspot.com/2013/07/custom-ssis-component-multiple.html

リンクで提供されるカスタマイズされたMultiple Expressions Taskコンポーネントをダウンロードするか、変数ごとにExpression Taskを実行する必要があります。

19
Squ1rr3lz

私が最近始めた何かは人々に役立つかもしれません:

複数の式タスクまたはスクリプトタスクを設定する面倒に行く必要はなく、SQL実行タスクを使用してジョブを実行できることがよくあることに気付きました。必要なSQLは、接続するデータベースに基づいて少し異なる場合があります。私の例はSQL Serverに基づいています。

私の例はパラメーターからの変数の初期化に基づいていますが、これはさまざまな状況に合わせて調整できます。

ステップ1

パラメータを受け入れるクエリを作成します。これらは、値を必要とするパラメータまたは変数です。もちろん、これを使用して変数を0に初期化するか、いくつかのパラメーターまたは変数に対していくつかの演算を実行できます。

Result SetオプションにはSingle rowオプションを使用します。

General Tab

ステップ2

通常どおりにパラメータマッピングを設定します。

Parameter Mapping Tab

ステップ3

結果セットを設定します。

Result Set Tab


これの欠点は、データベースに接続してそれを行うことです-しかし、SSISがインストールされている場合は、そのサーバーにSQL Serverインスタンスがあるため、多くの欠点があるかどうかはわかりません。

これは、スクリプトタスクを設定するよりもはるかに簡単ですが、YMMVです。

8
Jo Douglass