将sqlcmd查询输出到批处理变量中

时间:2014-08-11 15:50:19

标签: sql-server batch-file sqlcmd

您好我希望将查询输出到批处理变量中。所以我做了

sqlcmd /U sqladmin /P pwd /d mydb /v nesql= xxx hostsql = yyy -e /I /Q "set nocount on;select count(*) from mytable where host='$(hostsql)' and ( LocaA='$(nesql)' or LocaB='$(nesql)' )" -h -1 >prajyodh.txt

我正在获取输出但是使用正确的查询获得额外的第一行。

set nocount on;select count(*) from mytable where host='yyy' and ( LocaA='xxx' or LocaB='xxx' )
  11105

我希望得到第一行,以便我可以通过

来计算变量
set /p varname=<prajyodh.txt

并在我的批处理脚本中进一步使用它。

我已经通过sqlcmd-? 但我找不到合适的选择。

请帮忙。谢谢。

1 个答案:

答案 0 :(得分:1)

1.这种方法与你的方法类似:

< prajyodh.txt (
  set /p line1=
  set /p line2=

) 
set line

2。 FOR / F且没有临时文件。

for /f "skip=1 tokens=* delims=" %%s in ('sqlcmd /U sqladmin /P pwd /d mydb /v nesql= xxx hostsql = yyy -e /I /Q "set nocount on;select count(*^) from mytable where host='$(hostsql^)' and ( LocaA='$(nesql^)' or LocaB='$(nesql^)' ^)" -h -1^) do (
     set "second_line=%%S"
     goto :break
)
:break