Tedious: Ошибка массовой загрузки во временную таблицу

Созданный на 16 нояб. 2019  ·  7Комментарии  ·  Источник: tediousjs/tedious

Возникла проблема с попыткой выполнить массовую загрузку во временную таблицу:

Скрипт создания временной таблицы:

CREATE TABLE ##DummyTable_Site ( [DimId] int NOT NULL, [Type] nvarchar(200), [Status] nvarchar(200), [Grp] nvarchar(200), [Cat] nvarchar(200), [Desc] nvarchar(500), [Name] nvarchar(200), [Cd] nvarchar(200) NOT NULL,[CRD] datetime2, [CUId] int, [DSId] int)

connection.newBulkLoad('##DummyTable_Site', { keepNulls: true }, ... );
... Columns and Rows added here
connection.execBulkLoad(bulkLoad);

После выполнения execBulkLoad появляется следующая ошибка

Ошибка :
сообщение: «Произошла неизвестная ошибка. Вероятно, это связано с тем, что схема BulkLoad не соответствует схеме таблицы, в которую вы пытаетесь вставить».

Все 7 Комментарий

+1, когда я пытаюсь обновить существующую таблицу дополнительным столбцом, я получаю ту же ошибку. Есть идеи, как это исправить? В документации ничего не нашел 😔

@codethyme Можете ли вы показать код добавления столбцов и строк? Ошибка может указывать на то, что добавляемые столбцы и строки не соответствуют порядку столбцов временной таблицы.

@ mikalai-sokarau Соответствуют ли добавляемые строки и столбцы столбцам таблицы? Возможно, пример кода может быть полезен для просмотра

Привет @ mikalai-sokarau, я только что бегло просмотрел документ и обнаружил, что в нем действительно упоминается, что схема для добавления столбцов должна соответствовать схеме исходной таблицы. Это может быть причиной вашей ошибки? http://tediousjs.github.io/tedious/bulk-load.html#function_addColumn

Привет, ребята, спасибо за ваши ответы и ссылку на документ!
Действительно, я узнал, что схемы бывают разные 😳
Можно ли динамически изменить схему таблицы (добавить еще один столбец) с помощью утомительного API?
Или, может быть, кто-то может предложить стандартный подход к этой манипуляции?

Вы можете попробовать просто использовать обычную команду SQL, например

let sqlCommand = 'ALTER TABLE table_name ADD column_name datatype;'

Затем с помощью обычного утомительного API connection.execSql(sqlCommand); . Посмотрите, работает ли это?

Привет @IanChokS , большое спасибо, помогло!

@codethyme Вышеупомянутое решение также работает для вас? Закрытие на данный момент.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги