1

SQL Server 2008 で「マスター」SSIS パッケージをセットアップして、他の「子」パッケージを実行しようとしています。「子」パッケージを開発するとき、すべてのパッケージをディスク上に置いて、簡単にデバッグできるようにします。そのため、開発中にファイル コネクタを使用して、進行状況を適切に監視できます。

展開するときは、子パッケージを SQL Server 上の SSIS に展開し、すべてのパッケージ実行タスクを調べて変更し、'SQL Server' の場所の値を使用して PackageName を設定します。完了したら、「マスター」をデプロイします。

私がやりたいのは、パッケージ実行タスクで式を使用して接続プロパティを設定し、環境に応じてこれを構成できるようにすることです。クエリのホスト名をチェックし、クエリに応じて異なる値を返すビューを使用して、SQL Server 構成データベースを既にセットアップしています。

4

1 に答える 1

3

オプションがあります。式を使用するのは正しい考え方ですが、構成を使用することでメリットが得られる場合もあります。

式を使用するには、スクリプト タスクまたは SQL 実行タスクを使用して、処理するファイルのリストを返す必要があります。

返された各値を式に渡される独自の変数に割り当てるか、FOR EACH ループを使用してリストを処理し、毎回子パッケージの場所を割り当てる必要があります。

もう 1 つのオプションは、構成を使用することです。私の好みは、SSIS 内で構成テーブルを使用することです。各環境に同じパッケージ リストがある場合は、ルート ディレクトリを渡し、次の式を使用することができます: @[User::RootPackagePath] + "\PackageName.dtsx"

または、構成テーブル内の子パッケージごとに 1 つのレコードを単純に作成し、それをパッケージに渡すこともできます。

コメントに基づいて編集:

ファイルシステムからパッケージを呼び出してからSQLを呼び出すように、構成を介してパッケージを変更するように構成することができました。

それぞれに Connection と PackageName を渡すだけで済みました。SQL では、接続マネージャーからの名前 (私の場合は .\SQL2008R2) とパッケージ名 (\Package1) が必要です。ファイル システムの場合、PackageName は空白になり、接続は接続マネージャーの FileConnection になります。

両方をパッケージに保持する必要がありますが、2 つを切り替える必要があります。

構成

実行前

設定後

于 2013-03-12T20:20:12.607 に答える