Node.js使用mssql模块查询时recordset返回null问题求助
Node.js mssql模块recordset/recordsets返回null问题
我在Node.js中使用mssql模块时遇到一个问题:请求查询执行后rowsAffected的值和服务器记录的数值一致,说明执行是正常的,但recordset和recordsets始终返回null。
常见原因及解决办法:
- SQL语句类型问题:如果执行的是
INSERT/UPDATE/DELETE这类仅修改数据的语句,mssql默认不会返回recordset。要是需要获取修改后的记录,得在SQL里加上OUTPUT子句,比如:UPDATE 你的表 SET 字段名 = 新值 OUTPUT inserted.* WHERE 筛选条件 - 调用方法匹配问题:如果调用的是存储过程(
request.execute()),要确认存储过程内部有SELECT语句返回结果集,而不是只返回影响行数。如果是用request.query()执行非查询语句,本身就不会生成recordset。 - 配置参数检查:排查是否在请求配置里设置了
options.noResults = true,这个参数会禁用结果集返回,需要确保它是false或者不配置。 - 版本兼容问题:旧版mssql可能存在结果集返回的bug,建议升级到最新的稳定版本试试。
内容的提问来源于stack exchange,提问作者graylobo
相关产品推荐
相关产品推荐

