在准备好的查询MSSQL Nodejs中声明会话变量

时间:2019-01-16 23:40:35

标签: node.js sql-server prepared-statement

Nodejs mssql软件包需要@前缀变量
SQL Server也希望使用此类变量:docs中的Variable names must begin with an at (@) sign
在下面的代码示例中,我声明了一个本地SQL var @client_id,它等于nodejs clientId

const stmt = await new sql.PreparedStatement;
const query = `
    DECLARE @client_id INT = @clientId; -- The first is sql var name, second a value from stmt.execute
    select * from clients where id = @client_id -- sql local var here`;
stmt.input('client_id', Int);
const result = await stmt.execute({
    clientId: 123,
});

如何逃脱此类代码?或更改mssql软件包的@前缀 注意:

  • 必须准备语句查询,既不能使用动态sql,也不能直接将值插入代码中
  • 我无法更改很多sql,无法将其转换为存储过程

0 个答案:

没有答案