- ベストアンサー
CSVファイルインポート時のテーブル作成
SQLSERVER2008にCSVファイルをインポートしようとしています。 CSVの項目が変動するため、あらかじめテーブルを用意するのではなく CSVの内容に基づいて毎回作成するようにしたいのです。 インポートウィザードでの操作を保存したパッケージを起動しても、前回のテーブル構造を保存しているらしく項目の変動に耐えられません。 何か方法はないのでしょうか?
- みんなの回答 (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ループコンテナの設定がちょっと面倒かもしれません。
お礼
1)の方法で出来ました。 Webを検索しても、マニュアルを見ても1には、全くたどり着けませんでした。 本当にありがとうございました。