我有点喜欢Sequelize和Node.js
我正在尝试将Sequelize与MSSQL数据库一起使用,并弄清楚我可以使用它做什么。
我已经建立了连接,并基于现有表创建了模型。
该表上有多个触发器。
当我尝试执行类似的操作
sampletable.update({
NAME: "TEST"
},
{
where: {ID: 0},
silent: true
},
).then(function(result){
console.log(result);
})
其中“ sampletable”是导入的模型
var sampletable = sequelize.import('./models/sampletable.js');
使用“ SequelizeAuto”(基于现有表的结构)创建的
var SequelizeAuto = require('sequelize-auto')
var auto = new SequelizeAuto(config.database, config.username, config.password, config);
auto.run(function (err) {
if (err) throw err;
});
我遇到以下错误
"Unhandled rejection SequelizeDatabaseError: The target table 'sampletable' of the DML statement cannot have any enabled triggers if the statement contains an OUTPUT clause without INTO clause."
声明已执行
Executing (default): UPDATE [sampletable] SET [NAME]=N'test' OUTPUT INSERTED.* WHERE [id] = 0
是否可以通过带有触发器的触发器来更新表?
如果是,有人可以向我指出正确的方向吗? 我已经搜索过doco,但是我找不到很多。
TIA
答案 0 :(得分:1)
添加hasTrigger: true
对我有用,但仅适用于将新元素插入表中。
在编辑表中的元素时,我看到了以下问题:
如果DML语句的目标表'RMA'包含不带INTO子句的OUTPUT子句,则该语句不能具有任何启用的触发器。服务器内部错误(500)。
我将node.js(节点表示)和Sequelize用于后端。 预先非常感谢。
答案 1 :(得分:0)
尝试将many=True
添加到模型选项中。这样可以防止Tedious尝试从基表中输出结果,而改用临时表。