Время прочтения: 2 мин.

Нам необходимо было импортировать данные, представленные в excel-файле на MS SQL-Server. В структуре excel-файла есть текстовые поля размером более 1000 символов.

При загрузке excel-файла на сервер возникла проблема – в таблицу были импортированы данные, но текстовые поля не превышали по длине 255 символов – nvarchar (255). Таким образом, происходило усечение данных и вместо 1000 символов создавалась таблица со структурой полей на сервере, не превышающую 255 символов.

Задачи  -> Импорт ->

Мои попытки изменить структуру данных в «Мастер ИМПОРТА» и сделать nvarchar (max) не привели к желаемому результату.

Расследование

«Мастер ИМПОРТА» выполнил загрузку из excel-файла без ошибок, но создавал структуру таблицы, в которой полям устанавливалось значение nvarchar(255). Видимо, «Мастер ИМПОРТА», при анализе структуры данных excel-файла, анализировал не все записи, а только первую не большую часть данных. В исходном excel-файле в первых 10 записях были данные с длиной менее 255 символов.

Решение

Для решения кейса я использовал функцию в excel ДЛСТР (), добавив столбец(Длина), в котором будет храниться вычисленная длина столбца (Значение_ДС).

Далее в excel-файле сортируем столбец по убыванию, чтобы данные с максимальной длиной строки были в числе первых записей. Сохраняем и заново загружаем в MS SQL-Server.

После повторной загрузки excel-файла в «Мастер ИМПОРТА» на SQL SERVER, столбец (Значение_ДС) был заполнен полностью без усечения.