1

パッケージ変数の 1 つを、データベース テーブルの 1 つの列の最大値に設定したい SSIS プロジェクトがあります。パッケージ変数の名前が var であるとします。

私のSQLは次のようになります:

SET var = (SELECT max(some_column) from SomeTable)

これは SSIS 制御フロー/データ フローにどのように適合しますか? この SQL はどのタイプのタスクに入りますか? SQL 経由でパッケージ変数にアクセスすることはできますか?

4

1 に答える 1

4

これを行うには、Execute Sql Task を使用できます。構文は、使用しているデータベース接続のタイプ (OleDb または .Net) によって異なります。

OleDb 接続マネージャーを使用している場合、SQL ステートメントは次のようになります。

SELECT ? = MAX(some_column) FROM some_table

次に、[パラメーター マッピング] タブを選択して、パラメーター/変数をマップします。「変数名」フィールドのドロップダウンからパッケージ変数を選択します。[方向] を [出力] に設定し、[パラメーター名] を 0 に設定します (OleDb 接続の変数は、0 から順にマップされます)。

.Net 接続マネージャーを使用している場合は、SQL ステートメントのパラメーター プレース ホルダーとして、より使い慣れた @variableName を使用したり、SQL 実行タスクのパラメーター名を使用したりできます。

編集:あなたのコメントに応えて。私のプロジェクトの 1 つから直接引き出されたいくつかのスクリーンショットを参照してください。私たちが同じページにいることを確認するために、あなたがしていることを比較してください.

このショットでは、Execute Sql タスクの接続の種類に注目し、SQL 関数と等しいパラメーターを選択している Sql ステートメントの最後のステートメントに注目してください。

SSIS の例 1

この次のショットでは、パラメーターの方向が出力に設定されていることを確認して、2 番目のパラメーターを構成する方法を確認します。このパラメーターは、SQL ステートメントの 2 番目のパラメーター/パラメーター ホルダーであるため、1 という名前が付けられます。 SSIS の例 2

于 2013-01-12T04:58:49.250 に答える