NodeJS和MSSQL – 在…中插入一个parm,并显示运行的SQL

我有一个函数,执行SQL查询并返回JSON输出。

  1. 我怎样才能将一个参数插入一个类似的子句 – 例如student_lastname like 'ABC%' – ABC将会是一个参数? 如果需要的话,我可以将SQL自己串在一起,只是试图遵循最佳实践并避免SQL注入。

  2. 当下面的SQL无法返回任何行时,如何显示它实际运行的SQL? 我可以做一个console.log(sql.query)或类似的东西? 现在,我将尝试使用SQL分析器来查看正在发生的事情。

码:

 return sql.connect(sqlConfig).then(pool => { // Query - how to fold in my parameter in a like statement return pool.request() .input('parms_initialLettersLastname', sql.VarChar(50), initialLettersLastname) .query("select student_id, student_firstname, student_lastname, student_city, student_state, student_zip from students where student_lastname like '@parms_initialLettersLastname%' ORDER BY student_lastname, student_firstname ") }).then(function(result) { console.log("getStudents:then(result=>"); console.dir(result); sql.close(); return result; }) .catch(err => { // ... error checks console.log("DB Error1: " + err); //console.log(pool.request.query); // how to print out sql to debug error? sql.close(); throw err; })