如何IF语句中使用的SQLCMD
问题描述:
如果有错误,同时运行的程序,然后回声“错误”其他“成功”如何IF语句中使用的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
答
试CMD &&
和||
运营商,其中&&
意味着前面的命令成功的和||
意味着前面的命令失败
在
mycommand && echo success || echo error
你也可以写括号
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
中删除错误消息
用这些语句编写脚本并将其传递给'sqlcmd',而不是试图在查询参数中填充所有内容 –