У меня есть CSV дамп от другой БД, которая выглядит следующим образом (ID, имя, примечание):Как навалом вставить из CSV, когда некоторые поля имеют новый символ строки?
1001,John Smith,15 Main Street
1002,Jane Smith,"2010 Rockliffe Dr.
Pleasantville, IL
USA"
1003,Bill Karr,2820 West Ave.
Последнее поле может содержать возвращения и запятые каретки, в этом случае его окружали двойные кавычки. И мне нужно сохранить эти возвращения и запятые.
Я использую этот код, чтобы импортировать CSV в моей таблице:
BULK INSERT CSVTest
FROM 'c:\csvfile.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
SQL Server 2005 основная вставка не может понять, что возврат каретки внутри кавычек не грести терминаторы.
Как победить?
UPDATE:
Похоже, единственный способ сохранить разрывы строк внутри поля использовать другой разделитель строк. Итак, я хочу отметить все разрывы строк, разделив строки, поставив перед ними трубку. Как я могу изменить свой CSV, чтобы выглядеть так?
1001,John Smith,15 Main Street|
1002,Jane Smith,"2010 Rockliffe Dr.
Pleasantville, IL
USA"|
1003,Bill Karr,2820 West Ave.|
также из источника всех знаний: «Поля со встроенными разрывами строк должны быть заключены в символы двойной кавычки», поэтому входной файл действителен. – Jimmy
Не вариант. Это должен быть сценарий SQL, который будет выполняться где-то еще кем-то другим. Тем не менее, я могу настроить CSV-файл в любом случае в редакторе. –