Nodejs mssql
пакет ожидает переменные с префиксом @
SQL Server также ожидает такие переменные: 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, не могу преобразовать его в хранимую процедуру