我正在使用NodeJS包MSSQL(https://npmjs.org/package/mssql#cfg-node-tds)连接到MS SQL数据库并执行UPDATE查询。
我理解,如果UPDATE查询结束而不是影响任何行,它仍将作为成功事件返回。如果零行受到影响,我想以不同的方式处理成功事件,因为这不是查询的预期结果。
在做了一些研究后,我发现在执行SQL查询时,可以使用@@ ROWCOUNT来获取受影响的行数,但我还没有弄清楚如何在MSSQL Node包中使用它。
有没有人使用过这个Node包,并按照我的方式处理UPDATE查询?
谢谢!
答案 0 :(得分:0)
好的,从您提供的链接开始,节点包可以调用存储过程。
在JS端或TSQL端创建逻辑。
由于我是DBA / Developer的交易,让我们创建一个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行(s)受影响) 1
在JS代码中,如果@ret = 0则执行操作A,如果@ret>执行操作B. 0