节点mssql更新查询,获取rowcount
我正在使用NodeJS包MSSQL( https://npmjs.org/package/mssql#cfg-node-tds )连接到MS SQL数据库并执行UPDATE查询。
我明白,如果UPDATE查询最终不会影响任何行,它仍然会返回成功事件。 如果零行受到影响,我想要以不同的方式处理成功事件,因为这不是查询的预期结果。
在做了一些研究之后,我发现在执行SQL查询时,可以使用@@ ROWCOUNT来获取受影响的行数,但是我还没有弄清楚如何在MSSQL Node包中使用它。
有没有人使用这个节点包,并处理更新查询我想要的方式?
谢谢!
好吧,从你提供的链接中,节点包可以调用存储过程。
要么在JS端或TSQL端创build逻辑。
由于我是交易的DBA /开发人员,所以让我们创build一个SP来执行更新,返回受影响的行数。
我正在使用冒险工程示例数据库。
-- use sample db use AdventureWorks2012; go -- sample select select * from [Person].[Person] where lastname = 'Walters'; go -- stored procedure create procedure usp_Update_First_Name (@id int, @first varchar(50)) as begin update [Person].[Person] set [FirstName] = @first where [BusinessEntityID] = @id; return(@@rowcount); end go -- make a call declare @ret int; exec @ret = usp_Update_First_Name @id = 4, @first = 'Robert'; print @ret;
这个调用返回下面的输出。
(1排受影响)1
在JS代码中,如果@ret = 0,则执行操作A;如果@ret> 0,则执行操作B.