节点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.