Tom
Tom

Reputation: 111

Sequelize - Update table that has trigger on it - not working

I am kinda of new with Sequelize and Node.js

I am trying to use Sequelize with a MSSQL database and figure out what i can do with it.

I've established the connection, created a model based on a existing table.

Such table has multiple triggers on it.

When i try to execute something like this

sampletable.update({
  NAME: "TEST"
},
{
  where: {ID: 0},
  silent: true
},
).then(function(result){
  console.log(result);
})

where "sampletable" is an imported model

var sampletable = sequelize.import('./models/sampletable.js');

that was created with with "SequelizeAuto" (based on existing table's structure)

var SequelizeAuto = require('sequelize-auto')
var auto = new SequelizeAuto(config.database, config.username, config.password, config);
auto.run(function (err) {
  if (err) throw err;
});

i get following error

"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."

Statement executed

Executing (default): UPDATE [sampletable] SET [NAME]=N'test' OUTPUT INSERTED.* WHERE [id] = 0

Is it possible to update table with triggers with sequelize??

If yes, can anybody point me in the right direction?? I've googled, checked doco, but i can;t find much about it.

TIA

Upvotes: 3

Views: 2660

Answers (1)

John Tabernik
John Tabernik

Reputation: 342

Try adding hasTrigger: true to your model options. This prevents Tedious from trying to output the results from the base table, and uses a temp table instead.

Upvotes: 5

Related Questions