node mssql更新查询,获取rowcount

时间:2014-01-31 16:02:03

标签: javascript sql sql-server node.js express

我正在使用NodeJS包MSSQL(https://npmjs.org/package/mssql#cfg-node-tds)连接到MS SQL数据库并执行UPDATE查询。

我理解,如果UPDATE查询结束而不是影响任何行,它仍将作为成功事件返回。如果零行受到影响,我想以不同的方式处理成功事件,因为这不是查询的预期结果。

在做了一些研究后,我发现在执行SQL查询时,可以使用@@ ROWCOUNT来获取受影响的行数,但我还没有弄清楚如何在MSSQL Node包中使用它。

有没有人使用过这个Node包,并按照我的方式处理UPDATE查询?

谢谢!

1 个答案:

答案 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