如何在sqlcmd中使用IF语句

时间:2016-12-29 09:22:15

标签: batch-file sqlcmd

如果在运行程序时出错,则回显'错误'别的'成功'

sqlcmd -S DANAA-LAPTOP -d NewsWebsite -q "SP_DictionaryMain 'NewsWebsite','NEW'"  
       -o C:\logFile\ReportExE-%date:~-4,4%%date:~-10,2%%date:~-7,2%.txt 

1 个答案:

答案 0 :(得分:0)

尝试使用cmd &&||运算符,其中&&表示上一个命令成功,||表示上一个命令失败。

,如

mycommand && echo success || echo error

你也可以在parens中编写复合命令

mycommand && (set "somevar=ok" & echo success) || (set "somevar=ko" & echo error) 

或者,如果您正在运行批处理脚本

mycommand && (
  set "somevar=ok" 
  echo success
) || (
  set "somevar=ko" 
  echo error
) 
  

此外,您需要使用-b开关强制sqlcmd返回   可以在批处理或命令行中捕获的ERRORLEVEL。发生错误时,此开关还会强制关闭sqlcmd

所以,在你的情况下

sqlcmd -b -S DANAA-LAPTOP -d NewsWebsite -q "SP_DictionaryMain 'NewsWebsite','NEW'"  -o C:\logFile\ReportExE-%date:~-4,4%%date:~-10,2%%date:~-7,2%.txt 2>NUL && echo success || echo error

如果你想要echo某事,2>NUL会抑制错误输出。删除它以查看来自sqlcmd

的错误消息