我创建了一个批处理文件,该文件使用bcp从一系列SSMS查询中输出数据。
为了便于阅读和维护,我想将每个查询设置为跨越多行的变量,我将在bcp调用中引用它,例如:
SET myQuery =
"select a, b, c, d "
"from tableA a "
"inner join tableB b "
"on a.Id = b.ID "
"where a.value < .99 "
"order by a.Id "
bcp %myQuery% queryout C:\myDir\filenameOut.txt -S ServerName -T -c
我找到了做同样事情的克拉运算符,并按原样应用:
SET myQuery =
"select a, b, c, d " ^
"from tableA a " ^
"inner join tableB b " ^
"on a.Id = b.ID " ^
"where a.value < .99 " ^
"order by a.Id "
无济于事。错误消息说:
“[第一行内容]未被识别为内部或外部 命令,可操作程序或批处理文件。“
这让我觉得线条没有正确连接。
我意识到批处理文件通常不适合这样的多行操作,但有没有直接的方法来实现这一目标?
答案 0 :(得分:0)
"select a, b, c, d" ^
"from tableA a" ^
"inner join tableB b" ^
"on a.Id = b.ID" ^
"where a.value < .99" ^
"order by a.Id"
我希望这会成为。
select a, b, c, dfrom tableA ainner join tableB bon a.Id = b.IDwhere a.value < .99order by a.Id
看到问题?
这就是你想要的
select a, b, c, d from table A a inner join table B b on a.Id = b.ID where a.value < .99 order by a.Id
答案 1 :(得分:0)
至少在我对SSMS v17.1的测试中,使用反斜杠\似乎可以正常工作
app.use(function(req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
res.setHeader('Access-Control-Expose-Headers','Content-Type,expire');
next();
});