2017-08-24 18 views
-1

CSVファイルからSQL Serverテーブルをロードしようとしています。CSVファイルのバルク挿入問題

マイBULK INSERTステートメント:

bulk insert ClassList from 'ClassList.csv' 
with (
    firstrow=2, 
    fieldterminator=',', 
    maxerrors=100, 
    keepnulls 
    ); 

は、彼らは二重引用符の区切り文字を持っているので、フィールドのいずれかにコンマが含まれているいくつかの行データ・ロードの大部分ではなく、 - ここで、行21 & 23の負荷ではなく、22 :

21,Blue or Lilac Smoke Adult,22,PER, 
22,"Red, Tortie, Cream, Blue or Lilac Cream or Choc. Tortie Smoke Adult",23,PER, 
23,AC Silver Tabby Adult,24,PER, 

マイテーブル:

Class_Number varchar(10) not null 
Class_Description varchar(200) not null 
Class_Order int not null 
Section_ID varchar(10) not null 
Judge_Initials varchar(10) null 

Sを使用してSMS v17.2。

SQL Serverの詳細:

Product Version:   13.0.4206.0 
Product Name:    SQL Server 2016 
Product Level:   SP1 
Product Edition:   Express Edition (64-bit) 

答えて

-2

あなたのソースCSVファイルにデータとして '' あなたが持っているようです。同様の問題は、リンクの下に答えている -

sql server Bulk insert csv with data having comma

+0

OPを別の回答に照会するだけの場合は、それを重複としてフラグを立てる必要があります。 –

0

OK上記の投稿のリンクのような答えがソフトウェアの私のバージョンでBULK LOADはいくつかの前後に引用符を持つファイルには対応できないということですフィールド。私はすべての文字フィールドを引用するのがうまくいくかどうかを調べようとはしていません。私はタブ区切りフィールド(.txt)として再保存し、それはちょうど良いロードされています。 MSのドキュメントから

https://docs.microsoft.com/en-us/sql/t-sql/statements/bulk-insert-transact-sql

**Input file format options** 
FORMAT = 'CSV' 
Applies to: SQL Server 2017 CTP 1.1. 
Specifies a comma separated values file compliant to the RFC 4180 standard. 

FIELDQUOTE = 'field_quote' 
Applies to: SQL Server 2017 CTP 1.1. 
Specifies a character that will be used as the quote character in the CSV 
file. If not specified, the quote character (") will be used as the quote 
character as defined in the RFC 4180 standard. 

FORMATオプションは、おそらく私の問題の源である許容できませんでした。