问题描述
使用 mssql(6.3.1) 和节点 (14.15.1)。
这是我在模板文字中的查询,它有效。 (数据库名称在这里不是变量)
await sql.query`
INSERT
INTO
DB.DB.notes (updated_date,updated_user,note_description,work_order_id,created_date,created_user)
values(
${normalizedDate},${username},${note_description},${wo_id},${normalizedDate},${username} )
`;
但是当我尝试用变量替换数据库时,比如说 ${DB}
,它抛出错误。
首先是说
RequestError:“.”附近的语法不正确
然后我得到了
RequestError: "17" 附近的语法不正确(从 14 开始并增加到 17)
这是 documentation,我试过 ConnectionPool
类 .query('/**query**/')
,但没有一个适合我。
请指出这里有什么问题。
解决方法
您在查询中使用的语法会生成参数化查询。
不可能在查询中参数化“标识符”。见Can I parameterize the table name in a prepared statement?