Возникла проблема с попыткой выполнить массовую загрузку во временную таблицу:
Скрипт создания временной таблицы:
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 не соответствует схеме таблицы, в которую вы пытаетесь вставить».
+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 Вышеупомянутое решение также работает для вас? Закрытие на данный момент.