gpt4 book ai didi

javascript - Node mssql 事务插入 - 返回插入的 id..?

转载 作者:搜寻专家 更新时间:2023-10-31 22:59:06 24 4
gpt4 key购买 nike

我正在使用 node-mssql 3.2.0,我需要INSERT INTO一个表并返回插入记录的id。

我可以成功使用sql.Transaction()插入数据,但是给回调(request.query()transaction.commit())的唯一参数是:

const request = new sql.Request();
request.query('...', (err, recordset, affected) => {});

const transaction = new sql.Transaction();
transaction.commit((err) => {});

因此 recordset 对于 INSERTUPDATEDELETE 语句是未定义affected 是受影响的行数,在我的例子中是 1

有人知道在 transaction.commit() 之后使用 node-mssql 获取插入记录 ID(只是主键 ID)的好方法吗?

最佳答案

除了执行 INSERT INTO... 语句之外,您还可以添加 SELECT... 语句:

INSERT INTO table (...) VALUES (...); SELECT SCOPE_IDENTITY() AS id;

SCOPE_IDENTITY()函数返回插入的标识列,这意味着 recordset 现在包含 id:

const request = new sql.Request();
request.query('...', (err, recordset, affected) => {});

我不认为 request.multiple = true; 是必需的,因为尽管这包括多个语句,但其中只有一个是 SELECT... 等等返回。

所以答案与 SQL 相关,并不特定于 node-mssql .

关于javascript - Node mssql 事务插入 - 返回插入的 id..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36745952/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com