async updatePerson(critera, transaction) {
return await this.knex.raw(`
update person
SET name = :name_new
WHERE name = :name_old
`, critera)
.transacting(transaction);
}
Critera
является объектом следующего
{name_new: 'test person', name_old: 'test person2'}
transaction
является knex.transaction
: https://knexjs.org/#Builder-transacting
Я хотел бы вернуть обновленные записи и / илиобновлено общее количество в SQL.Поэтому я могу сообщить пользователю о результате выполнения SQL
Аналогично Как получить список всех обновленных записей в knex / mysql
, но с использованием вышеупомянутого SQLзапрос в RAW с SQL Server.
Чтобы получить вставленное значение, я использую следующее, которое работает нормально.Не уверен, как этого можно добиться в случае обновления SQL:
async addPerson(person, transaction) {
return await this.knex.raw(`insert into person(
person_id
,name
) output inserted.[person_id]
values(
NEWID()
,:name
)`, person)
.transacting(transaction);
}
человек является объектом {name: 'test person 123'}
Ref: https://knexjs.org/#Raw-Bindings