У меня есть проблема при загрузке данных из разграниченных вкладкой плоских файлов (файлы TSV) в SQL Server использование 2005 года мастера Импорта Данных SSIS. Я не испытал эту проблему с помощью эквивалентной процедуры в SQL Server 2000, и я проверил, что внутренняя структура файлов, которые я пытаюсь импортировать, неизменна, так как задолго до SQL Server обновление произошло.
Проблема состоит в том, что все пустые значения в столбцах с типами числовых данных (например, smallint, плавание и т.д.) преобразовываются в 0s на импорте вместо ПУСТОГО УКАЗАТЕЛЯ. Это означает, что AVGing через эти данные дает ошибочный вывод.
Файлы TSV не включают текстовые спецификаторы, однако тестирование использования спецификаторов с некоторыми фиктивными данными не привело к разрешению этой проблемы.
Возможно сохранить ПУСТЫЕ УКАЗАТЕЛИ путем импорта в столбцы VARCHAR, однако это далеко от идеала. Существует ли способ дать мастеру Импорта/Экспорта SSIS команду импортировать пустые значения из плоских файлов в столбцы с типами числовых данных как ПУСТОЙ УКАЗАТЕЛЬ, а не 0?
См. Мой ответ здесь пожалуйста
Мастер не предоставляет правильные настройки, которые вам нужны ...
{{ 1}}@gbn: Спасибо за указатель. Кажется, я нашел способ обойти эту проблему и смог успешно импортировать в базу данных SQL Server 2005 данные, содержащие значения NULL в числовых столбцах.
На случай, если кто-то еще столкнулся с такой же проблемой:
Я импортировал данные с помощью задачи Data Flow в Business Intelligence Development Studio (а не с помощью dtswizard, как раньше), построив задачу Data Flow от Flat File Source до OLE DB Destination.
В окне Flat File Source Editor есть флажок 'retain null values from the source as null values in the data flow'. Установка этой галочки, похоже, решает эту проблему.
Как указал @gbn, это поле отсутствует в мастере.