2016-08-18 3 views
3

Я пытаюсь импортировать CSV в SQL Server 2008 R2 с помощью помощника импорта.
Когда я следую шагам, я вижу обзор отображения. Проблема заключается в том, что по умолчанию все типы устанавливаются varchar и размер для 50, независимо от содержания столбцов:Автоматически настраивать типы данных при импорте

enter image description here

В моем случае, есть более 100 столбцов с различными типами контента (числа, даты, длинный текст и т. д.). Когда я все еще продолжаю, я наконец получаю сообщение об ошибке, что в некоторых столбцах текст был слишком длинным, его нужно было сократить, и, как следствие, импорт не удался.

Есть ли вероятность, что помощник позаботится о типах данных автоматически, так что мне не придется настраивать каждый из них вручную?

+0

Я знаю, что это прямо не отвечает на ваш вопрос, но когда мне нужно загрузить CSV-файл, я обычно использую BULK INSERT. У меня никогда не было проблем с длиной полей, используя этот метод, если поле в таблице, в которую я вставлял, было слишком маленьким, чтобы принимать данные, что может быть той же проблемой, с которой вы сталкиваетесь здесь. –

ответ

0

Один из способов решения этой проблемы - преобразование CSV в книгу Excel. Когда помощник по импорту SQL Server считывает листы Excel, он пытается автоматически определить тип данных, просмотрев верхние (некоторые цифры, я не помню) значения для каждого поля. Если ваши данные в хорошей форме, это может просто исправить вашу проблему.

Но если вы получаете ошибки в CSV, вероятно, вы также получите ошибки в Excel, но сообщения об ошибках будут более полезны при определении того, какие поля могут быть проблемой (если он дает текст усечения ошибка, которую вы знаете, например, не смотреть на поля с форматированием чисел.)

Также очень распространенная проблема импорта CSV - это значения разделителя в полевых данных. Например. если разделитель является запятой, и у вас есть поля ввода в свободном тексте, скорее всего пользователь вводит запятую. Простой способ проверить, является ли эта проблема проблемой, используя версию листа в Excel, заключается в том, чтобы использовать функцию find для проверки запятых и заменить их тем, что не является разделителем, как подчеркивание.

Еще один вариант - изменить разделитель. Если вы используете настройки региона и языка в Windows, вы можете изменить «разделитель списков» на что-то маловероятное в ваших данных, например, бары |. Для этого измените настройку, откройте CSV в Excel и сохраните ее как CSV с новым именем файла. Excel будет использовать новый символ в качестве разделителя.

Смежные вопросы