【发布时间】:2016-12-08 09:51:27
【问题描述】:
我创建了一个批处理文件,它使用 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 "
无济于事。错误信息说:
"[第一行内容] 不被识别为内部或外部 命令、可运行的程序或批处理文件。”
这让我觉得这些行没有正确连接。
我意识到批处理文件通常不能很好地处理这样的多行操作,但是有没有一种直接的方法可以实现这一点?
【问题讨论】:
-
关键字周围需要更多空格。
-
@GordonLinoff, 'keywords' 表示 SQL 查询的内容?
标签: sql sql-server batch-file bcp