2016-12-29 168 views
0

如果有錯誤,同時運行的程序,然後回聲「錯誤」其他「成功」如何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 
+1

用這些語句編寫腳本並將其傳遞給'sqlcmd',而不是試圖在查詢參數中填充所有內容 –

回答

0

試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中刪除錯誤消息