異なるSQLソースサーバー(Server1、Server2、Server3)などから動的データプルを構築したいのですがforeachループを使用して複数のSQL Serverから複数のSQL ServerからDynamic Datapullをビルドする方法
表がドロップされたと私は私確信しているように、パッケージが実行されるたびに再作成されますデータベース(DATABASE1、データベース2、など)に私のSQLサーバー(DEV、製品版)に動的な場所にをプルダウンする
ソース上で何かが変更された場合(ソース名、データ型、長さなど)、ソースサーバーと一致します。
抽出するデータ私はforeach loop
で単一のデータフローを使用してこれをプルダウンしたいと思います。
私はなど、server5.database3.table_y
、server1.database1.table_x
(その内のすべてのサーバー名とテーブルとデータベースを持つテーブルを持っていると
私はそのテーブルをループしたいと内部の私のサーバーまでのテーブルのすべての行を引っ張ります)各テーブルの新しいデータフローを構築する必要はありません。
これを行うために、私はすでにオブジェクトに結果をダンプしているSQLタスクでforeachループを構築しました。その後、foreachループは、7つの異なるフィールド(Source_Server_Name
,Source_Server_Type_Driver
、Source_Database
、Source_Table
、Source_Where_Clause
、Source_Connection_String
、宛先のもの)を持つオブジェクトを取得し、ループ内で使用するためにこれらの各フィールドを別のString変数に置きます。
私は、変数を使用して動的に接続を変更することができますが、私は、関数にデータフロー内の列のマッピングを取得する方法を見つけ出すことができない、
は、私はバックエンドを編集するために使用できるスクリプトタスクのいくつかの種類ありますメタデータがエラーにならないように、私のための列マッピングを作成するXML?どんな助けでも大いに感謝されます:-)
これは私が私のサーバーにプルダウンする各テーブルのための異なるメタデータセットアップを持っている必要があることを覚えていることがわかります。
http://sql-bi-dev.blogspot.com/2010/07/dynamic-database-connection-using-ssis.html
SSISはこのように動作しません。データフロータスクのメタデータは作成時にバインドされ、実行時には設定できません。ただし、[Biml](http://billfellows.blogspot.com/2015/01/biml-replicate-o-matic.html)を使用して、これらのデータフロータスクのすべての生成をスクリプト化することはできますが、それはかなり簡単です – billinkc
私は許可されていません現在の作業環境でBIMLを使用します。スクリプトタスクを使用して、新しいSSISパッケージを作成できます。ここでは、基本的にスクリプトでXMLを作成し、そのSSISパッケージを実行します。その後、そのパッケージを作成した後、そのパッケージを削除し、ループ内の次のテーブルに移動して、そのスクリプトタスクの新しいパッケージを作成して実行/削除する別の手順がありますか? –
または、タスクを実行するために必要な変数を使用してSQL Serverオブジェクト転送タスクを使用しますか? –