2017-12-14 7 views
1

次の手順で200行以上のコード行を持つSQLクエリがあります。私は毎日これを実行し、表Aを生成する必要があります。同じプロセスでSSISパッケージを作成し、ssisを使用してtableAを作成するという新しい要件があります。 - 私は20列を引っ張っする必要がtable_B、table_C、TABLE_D:以下詳細は キーfatorsを(すべてすべて提出TABLEC組合を選択TableBの組合を選択)SQLプロセスをSSISパッケージに変換する

  1. ドロップtable_A
  2. からtable_Aに選択し、現在のSQLプロセスですこれらの3つの表から40列のうちの1つを選択します。列の名前が異なります。 Table_Aの一意の列になるように、列名と特定のデータ型を名前変更して標準化する必要があります。

これは既にsqlクエリで設定されていますが、ベストプラクティスとSSISに変換する方法を知る必要があります。 「Execute SQL Task」プロセスフロー を使用するか、oledbのソースとoledbの宛先を含むデータフロータスクを使用する必要がありますか?

答えて

1

Execute SQL Taskはあなたが望むものです。 SQLの実行タスクは、結果セットを返すかどうかを問わない任意のクエリを実行するように設計されています。あなたはコードを正しく動作させるために既に頑張っています。そうすれば、接続マネージャー(OLE DBと思われる)を定義してコードに貼り付けるだけです。

この場合、SSISは既存のSQLプロセスのコーディネータ/実行フレームワークにすぎません。 SSISのパッケージよりも多くを書いた人としてはまったく受け入れられます。

データフロータスクは、テーブルB、C、Dからリモートデータベースにデータを移動する必要がある場合、または簡単に実行できない変換ロジックを実行する必要がある場合に適していますTSQL。

データフロータスクは、実行時にテーブルの作成をサポートしません。すべてのSSISタスクは、パッケージ開始時に検証チェックを実行するか、特定のタスクが開始されるまで遅延させることができます。データフロータスクが実行するチェックの1つは、「ターゲットテーブルが存在しています(キャッシュされたコピーと構造が一致していますか)」です。

関連する問題