Массовая вставка TSQL - PullRequest
       1

Массовая вставка TSQL

3 голосов
/ 03 сентября 2010

У меня есть такой CSV-файл, разделитель полей ,.Мои CSV-файлы очень большие, и мне нужно импортировать их в таблицу SQL Server.Процесс должен быть автоматизирован, и это не разовое задание.

Поэтому я использую Bulk Insert для вставки таких CSV-файлов.Но сегодня я получил csvfile с такой строкой

1,12312312,HOME   ,"House, Gregory",P,NULL,NULL,NULL,NULL

Проблема в том, что Bulk Insert создает эту строку, особенно это поле "Дом, Григорий" как два поля: одно "Дом" и второе "Грегори"'.

Есть ли способ заставить Bulk Insert понять, что двойные кавычки переопределяют поведение запятой?Когда я открываю этот CSV в Excel, он обычно видит это поле как «Дом, Грегори»

Ответы [ 3 ]

3 голосов
/ 03 сентября 2010

Вам необходимо предварительно обработать файл, посмотрите на этот ответ:

SQL Server Массовая вставка файла CSV с несовместимыми кавычками

2 голосов
/ 04 сентября 2010

Если в каждой строке таблицы есть двойные кавычки, вы можете указать ," и ", в качестве разделителей столбцов для этого столбца, используя файлы формата

Если нет, измените его, или вам придется где-нибудь написать несколько хитроумных процедур предварительной обработки.

Для работы любого из инструментов SQL Server должен быть согласованный

0 голосов
/ 20 августа 2014

Поскольку вы имеете в виду Sql Server, я предполагаю, что у вас также есть доступ к Access (дружественная Microsoft среда).Если у вас есть Access, я рекомендую использовать его Мастер импорта.Это намного умнее, чем мастер импорта из Sql Server (даже версия 2014), и умнее, чем команда Bulk Insert sql.

У него есть виджет, в котором можно определить разделитель текста как ", он также не создает проблем с длиной строки, поскольку использует тип данных Access Текст. Если вас устраивают результаты в Access, вы можете импортироватьпозже они без проблем перейдут на Sql Server.

Лучший способ перенести данные из Access в Sql - использовать Sql Server Migration Assistant, доступный здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...