2016-03-24 5 views
0

SSISパッケージを作成してテキストデータを取得し、SQL Serverのテーブルのフィールドに結合してから挿入しますデータをテーブルに格納します。 SQL Serverデータツール2015とSQL Server 2014を使用しています。SSIS:ADO NETソースからの出力列がその後使用されないという警告を修正する方法

データベースへのADO NET接続を使用して接続マネージャを構成しました。この特定のデータフローコンポーネントでは、そのデータベースのテーブルを強調表示するADO NET Sourceがあります。私は、テーブルのデータを取って、それを並べ替え、マージ結合を行います。私はそのADO NET SourceからIdとField1だけが必要です。ディスカッションのためにField2とField3があるとします。

私がジョブを実行するとき、私はフィールド2およびフィールド3のために、次の警告を得る:

[SSIS.Pipeline] Warning: The output column "Field2" (45) on output "ADO >NET Source Output" (42) and component "ADO NET Source" (34) is not subsequently >used in the Data Flow task. Removing this unused output column can increase >Data Flow task performance.

私はので、私はメモリにこのデータを持っていない好むを通じて働いている多くのデータを持っています私がそれを避けることができれば。私は、その方法は、出力列を削除してADO NET Sourceから削除することを前提としていました。ただし、ADO NET Sourceをダブルクリックして列を選択すると、左側に外部列、右側に出力列が表示されます。これらの列マッピングのいずれかを右クリックすると、コンテキストメニューのオプションは有効になりません(切り取り、コピー、貼り付け、削除)

ADO NETソースを右クリックしてShow Advanced Editorを選択します)次に、Column Mappingsタブに移動します。私は必要のない列のマッピングを削除し、[OK]を選択します。アドバンストエディタを再度開くと、マッピングが削除されていないかのように再表示されます。また、私は、入力および出力のプロパティに移動し、私は次のエラーを取得する「列を削除」を選択した場合:

The column cannot be deleted. The component does not allow columns to be >deleted from this input or output. Pipeline component has returned HRESULT error code 0xC0208018

誰もが、私は、データがADO NETソースから入ってくるダウントリミングすることができます方法を知っていますか?

答えて

0

ソースでテーブル自体を選択するのではなく、SQLを記述することで、不要なカラムを削除する必要があります。テーブルを選択すると、テーブルのすべての列がソース/入力として表示されます。したがって、必要な列のみをフェッチするSQL問合せを作成します。

1

だから、ここではいくつかのオプションがあります:あなたは、データアクセスモードとしてSQLコマンドを選択して、あなただけの後にある列を選択するSQLコマンドを作ることができ、データソースのタスクで

  • を。ここでソートを適用することもできます。

    • あなたのSSISプロセスおよび参照に

二番目のオプションは、あなただけ通過することを可能にするデータ・ソースのタスクでこのビューを必要とする列だけでソース・データベース内のビューを作成します。あなたの後にある列はソートを適用する必要があります。

最初のオプションでデータベースのレコードを並べ替えることができます。これはより好ましい方法です。また、高度なエディタで並べ替えオプションを設定することもできます。つまり、並べ替えタスクを使用する必要はありません。しかし、あなたは、あなたが維持しなければならない埋め込みSQLで終わっています。私はあなたがデータベースにメンテナンスを移動し、必要に応じてコードを再利用できるようになるストアドプロシージャをこのステップで使用できると思います。

+0

並べ替えで「パススルー」の列をオフにすると、警告が表示されます。SQLコマンドまたはビューは、移動する方法のようです。 – Corez

+0

あなたは正しいですが、元の問題には対応していません。 –

関連する問題