[英]Adding multiple inputs to query MS SQL Server instance using 'node-mssql' npm package
I would like to query MS SQL Server instance to serve a very simple POST
request.我想查询 MS SQL 服务器实例来服务一个非常简单的POST
请求。 I am using nodejs + express.我正在使用 nodejs + express。 The following code (async version) considers only first input
types only and therefore returns error -以下代码(异步版本)仅考虑第一个input
类型,因此返回错误 -
let pool = await sql.connect(dbCredentials);
let bookName = "string to be matched" ;
let ranksVal= 10
let result = await pool
.request()
.input("item", sql.VarChar, bookName)
.input("ranksVal", sql.Int , ranksVal)
.query(`select top @ranksVal * from dbTable where book = @item order by counts desc`);
Ideally, the above code should return a result for the following SQL query:理想情况下,上述代码应返回以下 SQL 查询的结果:
select top 10 * from dbTable where book = "string to be matched" order by counts desc
Alternatively, the following solution works:或者,以下解决方案有效:
let result = await pool
.request()
.input("item", sql.VarChar, bookName)
.query(`select top ${ranksVal} * from dbTable where book = @item order by counts desc`);
But I would like to understand how can we pass multiple values to req.input()
method.但我想了解我们如何将多个值传递给req.input()
方法。 Thank you.谢谢你。
To use an expression or a parameter in a TOP values clause you must use parentheses.要在 TOP 值子句中使用表达式或参数,您必须使用括号。 eg例如
.query(`select top (@ranksVal) * from dbTable where book = @item order by counts desc`);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.