【发布时间】:2019-04-29 05:10:35
【问题描述】:
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 运行的结果
类似于How to get a list of all updated records in knex / mysql
但在 SQL Server 的 RAW 中使用上述 SQL 查询。
为了获得插入的值,我使用以下效果很好。不确定在更新 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'}
【问题讨论】:
标签: sql node.js sql-server knex.js