0

私はSSISが初めてです。ExcelからSQLサーバーテーブルにデータをロードしようとしています。データがテーブルに既に存在する場合は、それを一時テーブルまたはファイルに書き込む必要があります。存在しない場合は、テーブルに挿入する必要があります。

SQL Server 2005 を使用しています。それを実現するためにルックアップ変換を使用しています。しかし、うまくいきません。私はそれを達成することができますか?

いくつかのヒントを教えてください。あなたの助けに感謝します。

よろしく、VG。

4

1 に答える 1

0

段階的な解決策を示すのではなく、概念的な手順を書き留めます。私の意見では、これは理解を深めるのに役立ちます。ステップで行き詰まった場合は、お知らせください。

ステップ1:

まず、ファイルを一時テーブルにロードします。テーブルを手動で作成する必要はありません。BIDS に作成させてください。テーブルを変更して、新しい列 - ALREADY_EXISTS - BIT データ型を追加します。

データ フロー タスクを使用する必要があります。その中で、Excel データ ソースと ADO 変換先を使用します。

ステップ 2a: 一時テーブルと最終的な宛先テーブルで内部結合を使用して、SSMS で SQL ステートメントを記述します。思いついたクエリが期待どおりの結果をもたらすことを確認してください。この SELECT ステートメントを使用して、一時テーブル内の ALREADY_EXISTS 列を更新します。

ステップ 2: SQL 実行タスクをコントロール サーフェスに配置します。ステップ 2 のクエリを使用します。

ステップ 3: コントロール サーフェスに別の DFT を配置します。ALREADY_EXISTS を含めて、すべての列を選択する単純な SELECT ステートメントを記述します。

条件付き分割を使用して、新しいレコードと既存のレコードを決定し、それに応じて宛先を指定します。

また、SQL Server 2008 で導入された機能である Merge ステートメントについてもお読みください。

このソリューションに関するあなたの経験を共有してください。

于 2013-02-17T01:01:43.417 に答える