所以我正在使用一个名为json-sql的节点模块 https://github.com/2do2go/json-sql
但最终结果是
sql.query
// insert into users (name, lastname, age, gender) values ($p1, $p2, 24, $p3);
sql.values
// { p1: 'John', p2: 'Snow', p3: 'male' }
是否有快速方法使SQL可读?我希望有一堆这些语句,并将其转换为.sql文件,以便稍后在SQL Server上运行
答案 0 :(得分:0)
不幸的是,库无法本机生成可执行的符合MS SQL的语句。
有效的MS SQL预处理语句如下所示:
sp_EXECUTEsql @statement=N'Select @p as t', @parameters = N'@p varchar(50)', @p=N'Test'
所以在这种情况下,你想要做三件事:
options
参数将ValuesPrefix设置为@
,而不是默认$
sql.values
结果并生成上面@parameters
的值以及每个参数值。答案 1 :(得分:0)
似乎你可以使用选项separatedValues: false
来获得没有占位符的普通sql-query。
例如,在您的情况下:
var jsonSql = require('json-sql')({separatedValues: false});
sql.query
// insert into "users" ("name", "lastname", "age", "gender") values (\'John\', \'Snow\', 24, \'male\');
然后你只需要替换你不想要的字符(例如双引号);
我希望有人觉得这很有用。
答案 2 :(得分:-1)
模块显然打算将关联数组sql.values
描述的值插入sql.query
给出的查询字符串中。特定sql.query
和sql.values
的结果将是
insert into users (name, lastname, age, gender) values ('John', 'Snow', 24, 'male')
这与许多程序化数据库接口中存在的“预准备语句”的概念在外观上相似,但在实现上有所不同。