0
Commencé

Некоторые файлы не импортируются в MSSQL базу

Алексей Карпов il y a 5 ans mis à jour par Andrej Repin il y a 5 ans 9

При импорте возникает "ошибка обновления базы данных" с такой ошибкой:

Символьные или двоичные данные могут быть усечены.
Выполнение данной инструкции было прервано.

Пример файла тут: https://cloud.nowhereman.ru/index.php/s/hr95HCossRj2Ctb

Или не импортируется с такой ошибкой:

Неправильный синтаксис около ключевого слова "TABLE".

Commencé

В данном конкретном случае "виноват" слишком длинный список ISBN. Ограничение на данное поле перекачивало из старой схемы БД и составляет 125 символов.

Исправить можно выполнив следующую SQL команду:


ALTER TABLE BOOK ALTER COLUMN PI_ISBN NVARCHAR(254) NULL; 

Вот тут - пример файла, который не импортируется с ошибкой "Неправильный синтаксис около ключевого слова "TABLE"

https://cloud.nowhereman.ru/index.php/s/xJWhsUje120vT66

Не воспроизводится, файл импортируется без ошибок.

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

Воспроизвел. Порядок следующий:

Создаем новую MSSQL базу.

Импортируем первый из файлов по ссылке, просто кнопкой "добавить файл", затем кнопкой "Запуск":  https://cloud.nowhereman.ru/index.php/s/BNrn4QhY0pdfL2f

Файл импортируется без ошибок.

Импортируем второй файл, также кнопкой "добавить файл", потом кнопкой "Запуск". Он помечается как дубликат:


Нажимаем правой кнопкой и выбираем "Заменить файл в библиотеке".

Вылезает ошибка базы данных:

Тут, по дороге, еще один баг: ошибку можно увидеть только если снять с элемента списка выделение и выделить его обратно, но так как файл только один, этого сделать нельзя.

И да. Количество "Ошибок обновления базы" почему-то две.

Ошибка возникает при отсутствии MS DTC, для корректной работы требуется установить локальный DTC. Выполните команду Install-DTC в PowerShell от имени Администратора и запустите "Distributed Transaction Coordinator" в services.msc