• ベストアンサー

CSVファイルインポート時のテーブル作成

SQLSERVER2008にCSVファイルをインポートしようとしています。 CSVの項目が変動するため、あらかじめテーブルを用意するのではなく CSVの内容に基づいて毎回作成するようにしたいのです。 インポートウィザードでの操作を保存したパッケージを起動しても、前回のテーブル構造を保存しているらしく項目の変動に耐えられません。 何か方法はないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

以下のいずれかの方法しかないと思います。 1) SELECT INTO + OPENROWSET SELECT * INTO TABLE1 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Text;Database=パス;HDR=NO','SELECT * FROM CSV名') 2) BULK INSERTで1行1データでフィールド分割せずに一旦ワークにインポートし、 フィールドの数を数えた後、テーブルを作成してデリミタで切り出しつつセットする 3) SSISでADOのデータセットに一旦取りこんで、フィールドの数を数えた後、テーブルを作成してセットする 2,3はいずれも作り込みが必要です。 2は文字単位で切り出すスカラー関数か、SplitするCLR関数の作成が必要だと思いますし、 3はFor Eachループコンテナの設定がちょっと面倒かもしれません。

u_taro_k
質問者

お礼

1)の方法で出来ました。 Webを検索しても、マニュアルを見ても1には、全くたどり着けませんでした。 本当にありがとうございました。