こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

SQL ServerにCSVをインポート

SQL Server Express 2012にCSVファイルのデータをインポートさせたいと思っています。
SQL Server のデータのうち、主キーはdate型、その他はbit型、nvarchar型です。
SQL Serverのテーブルのデータには、#2013-01-01#, #False#, "あいう"などというデータがあります。

CSVは、Event.csvというデータです。
インポートするにあたって、BULK INSERTを利用しようとしています。
上記のデータで下記のコードをSQL Server Managemant Studio Expressで実行するとエラーとなります。
FROM 'D:\Business\Data\Event.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);

データを別の文字列にするべきなのか、#で日付やブール値を囲わない方がよいのか、あるいはカラム名の入ったCSVを用意するべきなのかなど、疑問が多いのですが、実際はどうあるべきなのでしょうか。
なお、上記のデータはもともとExcel のデータをVBAを使ってCSVファイルに出力したものなので、CSVの形式を別の状態のデータに変換することはできます。

もともとの目的は、ExcelのデータをSQL Serverのデータにインポートしたいだけです。

よろしくお願い致します。

投稿日時 - 2013-11-24 14:00:26

QNo.8359924

困ってます

このQ&Aは役に立ちましたか?

8人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

CSV形式とは何か一応説明しておきます。CSV形式はレコードを改行で区切り、フィールドをカンマで区切るのが基本です。この場合問題となるのはデータに改行やカンマが含まれる場合です、この場合は二重引用符でデータを囲みます、尚、二重引用符がデータ中に有る場合は2個連続にして対応します。したがって、両端に#を付ける方法はCSV形式ではありません。

投稿日時 - 2013-11-25 09:40:36

あなたにオススメの質問