- ベストアンサー
Excelの一覧を元にテーブルをアップデートしたい
一番端的な例として、 1.テーブルをエクセル形式でエクスポート 2.必要なカラムを修正 3.修正を元のテーブルに反映 ということをしたいときに3の方法を検討しています。 #ちなみにこの例であるならば、元のテーブルの全レコードを削除して再インポートが一番早いのですが、実際にはこのように単純ではなく、反映したいデータは元のレコードの一部しかない。しかもどのレコードかは(データ数が多すぎるなどの理由で)わからない、とします。 身近に聞いたところでは、ループしてデータをEXCELから抜き出してUPDATE文を実行するプログラムを組む、という回答を得たのですが、そういった処理を簡単に実行するようなツールがSQL Server側に用意されていないか、と期待してます。 データ変換サービス(DTS)などでできないかな、と試みたのですが、うまくいっていない状態です。 良い手法をご存知の方、もしくは該当しそうな処理方法を解説しているサイトをご存知の方、ご教示願います。ちなみにSQL Serverはあまり詳しくありません・・・。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
案1(手作業 + クエリアナライザで実行もしくはDTSへ登録しておく) 1.エクセルを読み込むためのワークテーブルを用意しておく。 2.エクセルのデータをテキストファイルにコピペする。 (そのままコピーすれば、TAB区切りになるはずです。) 3.「BULK INSERT」で上記2のテキストファイルのデータを 上記1で作成したワークテーブルへ登録する。 4.元のテーブルとワークテーブルを結合して、 ワークテーブルから元のテーブルへUpdateをかける 案2(DTSに登録しておく) 1.エクセルを読み込むためのワークテーブルを用意しておく。 2.エクセルのデータをワークテーブルへ登録する。 3.元のテーブルとワークテーブルを結合して、 ワークテーブルから元のテーブルへUpdateをかける でいかがでしょうか?
その他の回答 (1)
- snow765
- ベストアンサー率26% (8/30)
有償も可であれば、XCuteというツールがあります。 今はWeb機能メインになっていますが、昔はDB<->Excelの連携ツールでした。 連携機能は現在もあるはずです。 一応プログラムレスをうたっているツールなので比較的簡単にメンテナンスできると思います。 ただ、結構なお値段がしてしまいます。
お礼
ありがとうございました。 今回のケースでは有償ツールは使いづらいのですが、今後参考にさせていただきます。
お礼
ご回答ありがとうございます。 何れもテンポラリ(もしくはそれ専用のテーブルとして)で、ワークテーブルを作成する形になりますね。 ちょっと面倒かな・・・? 現在、ExcelのVBAマクロで入れ込む方法も検討しております。これでなんとかなりそうではありますが、ご意見参考にさせていただきます。 実際の作業はシステム開発にあまり明るくないオペレータが行うので、作りこみをする部分が少ないほど良いと考えています。デフォルトの機能で実現できなければ、VBAマクロでツールを作成して渡すのが一番早いかもしれませんね。 更に簡単な方法があればまた教えてください。