带有节点mssql对象的存储过程的受影响行

时间:2015-07-08 18:19:35

标签: javascript sql-server node.js azure azure-sql-database

我似乎无法让这个工作。我在Azure SQL中有一个更新过程。

CREATE PROCEDURE foobar
    @a int
AS
        update foo set bar=@a;
RETURN 0

我正在返回@@ rowcount并尝试使用它,但这意味着客户端有两个结果集和草率代码。客户端是node.js Azure Custom API。

exports.post = function(request, response) {
    var mssql = request.service.mssql;
    var sqlParams = [request.body.a];

    var sql = "foobar ?";

    mssql.query(sql, sqlParams, {
        success: function(results) {
                response.send(statusCodes.OK, results); //return affected rows
        }
    })
};

我尝试过使用results.affectedRows。我已经尝试在函数中使用其他参数来获取返回值。我直接查询了数据库并收到“1受影响的记录”作为回复。即使我退回@@ rowcount,我也无法在javascript中指定它。就像我回来的结果一样:      [{ “受影响的”:1}] 并尝试使用 results [0] .affected / results [0] [“affected”] 以及其他各种排列来访问它。我尝试了JSON.parse(结果)并尝试访问其属性,但仍然没有去。每次我只是盲目地尝试不同的事情时,Azure门户需要更新。

斯蒂芬

2 个答案:

答案 0 :(得分:2)

当然,毕竟我找到了建议使用queryRaw而不是查询的正确文档,并且你不知道它,它会返回一个RowCount。

斯蒂芬

答案 1 :(得分:1)

也许是 2015 年以来的更新,但答案是正确的here

另外,似乎 affectedRows 是 mysql,而 mssql 使用 rowsAffected。不需要 queryRaw