При попытке выполнить массовую вставку я получаю эту ошибку:
RequestError: Ошибка массовой копии.У пользователя нет разрешения ALTER TABLE для таблицы 'tableName'.Разрешение ALTER TABLE требуется для целевой таблицы операции массового копирования, если таблица имеет триггеры или проверочные ограничения, но массовые подсказки 'FIRE_TRIGGERS' или 'CHECK_CONSTRAINTS' не указываются в качестве параметров команды массового копирования.
Ниже приведен фрагмент кода.
const table = new sql.Table('tableName');
table.create = true
table.columns.add('c1', sql.BigInt, { nullable: false, primary: true })
table.columns.add('c2', sql.VarChar(40), { nullable: false })
table.columns.add('c3', sql.VarChar(40), { nullable: false })
_.forEach(result, function (row) {
table.rows.add(row.c1data, row.c2data, row.c3data);
});
await pool.request().bulk(table, async (err, result) => {
if (err) {
log.error("Error in bulk insert " + err);
sql.close();
}
else {
log.info("Successfully inserted");
status = true;
sql.close();
}
});
Это прекрасно работает в нижней среде, где у пользователя есть все права доступа, но не работает в верхней среде, где у пользователя ограниченный доступ.Сможем ли мы указать параметры CHECK_CONSTRAINTS и FIRE_TRIGGER, как указано ниже:
https://docs.microsoft.com/en-us/previous-versions/sql/sql-server-2005/ms188365(v=sql.90)#permissions