Dav*_*vid 6 sql-server for-loop batch-file sqlcmd batch-processing
我正在尝试将sqlcmd查询的输出设置为批处理文件中的变量.
这是我的查询:
sqlcmd -S <SERVER> -d <DATABASE> -Q "select max(Column1)+1 from Table1"
Run Code Online (Sandbox Code Playgroud)
这给了我我期望的和我想要的东西:
-----------
10
<1 rows affected>
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试将其设置为变量时,我使用了以下脚本:
for /f %%a in ('sqlcmd -S <SERVER> -d <DATABASE> -Q "select max(Column1)+1 from Table1"')
do set ColumnVar=%%a
echo %ColumnVar%
pause
Run Code Online (Sandbox Code Playgroud)
这给了我这个结果:<1 rows affected>我猜这是因为循环将变量设置为最后一行.那么有没有一种方法可以使用令牌和delims来解析10呢?
尝试启用NOCOUNT:
for /f %%a in ('sqlcmd -S <SERVER> -d <DATABASE> -Q "SET NOCOUNT ON; select max(Column1)+1 from Table1"')
do set ColumnVar=%%a
echo %ColumnVar%
pause
Run Code Online (Sandbox Code Playgroud)