【发布时间】:2014-12-23 16:27:01
【问题描述】:
我正在尝试将 sqlcmd 查询的输出设置为批处理文件中的变量。
这是我的查询:
sqlcmd -S <SERVER> -d <DATABASE> -Q "select max(Column1)+1 from Table1"
这正是我所期望的和我想要的:
-----------
10
<1 rows affected>
但是,当我尝试将其设置为变量时,我使用了以下脚本:
for /f %%a in ('sqlcmd -S <SERVER> -d <DATABASE> -Q "select max(Column1)+1 from Table1"')
do set ColumnVar=%%a
echo %ColumnVar%
pause
这给了我这个结果:<1 rows affected> 我猜这是因为循环将变量设置到最后一行。那么有没有办法我可以使用标记和分隔符来解析出 10 呢?
【问题讨论】:
-
我不是 100% 确定,但是this SO post may help
-
谢谢,我搜索的时候没看到这个问题。
-
您好,除非您将 do 命令与 for 循环放在同一行,否则这将不起作用
标签: sql-server batch-file for-loop batch-processing sqlcmd