3 モデルケース2「AccessのデータをSQL Serverに転送する」

モデルケース1とは逆のモデルケースとして、ここではAccess上のテーブルのデータをSQL Server上のテーブルへと転送します。

Access上の「商品」テーブルを、ほぼ同じデータ構造のSQL Serverの「商品」テーブルに転送するパッケージを作成します。


  1. モデルケース1で作ったパッケージとは転送先と転送元が逆になるだけで、基本的なフローは同じです。わざわざ一から作るのは手間が掛かりますので、ここでは新しいパッケージを作るのではなく、モデルケース1で作ったパッケージをコピーしてから編集を加えることにします。
    そこでまず、ソリューションエクスプローラ上で、コピー元となるパッケージ「Case01.dtsx」を右クリックして[コピー]を実行します。


  2. 次に、ソリューションエクスプローラの「SSIS パッケージ」というノードを右クリックして、[貼り付け]を実行します。


  3. 貼り付けられたパッケージのファイル名がこの場合「Case01 1.dtsx」となっていますので、「Case02.dtsx」にリネームします。


  4. 名前を変えると次のようなメッセージが表示されますので、[はい]をクリックします。


  5. ここから、コピーしたパッケージの内容を書き換えていきます。
    まず、デザイナ上の「SQL実行タスク」のタスクをダブルクリックして「SQL実行タスクエディタ」ダイアログを開きます。

  6. 「SQL実行タスク」では、元のパッケージがAccessのテーブルを空にするようになっていますので、それをSQL Server上のテーブルを空にするように変更します(ここでは対象テーブルも変わります)。
    まず「Connection」の欄の[▼]をクリックして、SQL Serverへの接続に設定変更します。


  7. 次に、「SQLStatement」の欄をSQL Serverの商品テーブルを空にするSQL文に書き換えます。ここでは「TRUNCATE TABLE 商品」とします。


  8. [OK]ボタンをクリックして「SQL実行タスク」の設定を確定します。

  9. 次に、「データフロータスク」の設定を変更します。
    デザイナ上の「データフロータスク」をダブルクリックしてタブを「データフロー」に切り替えます。


  10. 「データフロー」のタブから「OLE DBソース」のコンポーネントをダブルクリックして「OLE DBソースエディタ」ダイアログを開きます。

  11. 「OLE DB接続マネージャ」がコピー元パッケージのSQL Serverの設定になっていますので、[▼]ボタンをクリックしてAccessへの接続に切り替えます。


  12. 転送元のテーブル名をAccess側のものから選択します。


  13. 画面左のリストから「列」を選択して、転送元テーブルのどのフィールドを転送先に出力するかを選択します。
    • ここでは、モデルケース1と同様の理由で、「ID」と「添付ファイル」は除外しています。

  14. [OK]ボタンをクリックして「OLE DBソース」の設定を確定します。

  15. 次に、「OLE DB変換先」コンポーネントをダブルクリックします。

  16. するとここでは、すでにデザイナ上で「OLE DBソース」と「OLE DB変換先」のコンポーネントが結合されており、かつOLE DBソース側の変更によって両者の列の関係が狂ってしまっているため、下図のような警告の画面が表示されます。

    ここでは表内の行がすべて選択された状態になっていますので、そのまま画面右下で「<無効な列参照を削除する>」を選択して[適用]ボタンをクリックします(表内で個別に設定することもできます)。

    それによって表内の「使用できる列」が「<無効な列参照を削除する>」に変わったことを確認して、[OK]ボタンをクリックします。これによっていったんソースと変換先の列の関係がクリアされます。

  17. 画面が閉じるので、もう一度「OLE DB変換先」コンポーネントをダブルクリックして「OLE DB変換先エディタ」ダイアログを開きます。

  18. このダイアログにおいて、転送先となる接続先をSQL Serverに切り替え、またその対象テーブルをあらためて選択し直します。


  19. 「マッピング」を選択して、転送元と転送先のフィールドの関係を確認します。必要であれば結合線や表を操作して変更を行います。


  20. [OK]ボタンをクリックしてOLE DB接続先の設定を確定します。

  21. すべての設定変更が完了しましたので、デバッグ実行して、動作やテーブル内容の処理結果を確認します。
| Index | Prev | Next |

 

Copyright © T'sWare All rights reserved