2015-10-20 4 views
2

Я использую sqlcmd для запуска SQL-запроса в пакетном файле. Тогда мне хотелось бы - в зависимости от того, успешно ли выполнен SQL-запрос или нет - что-то делать.Проверьте, был ли sqlcmd успешным

sqlcmd -some flags -Q "Query" 
iF successful (
    do this 
) ELSE (
    do that 
) 

Спасибо. Я, кстати, новичок в пакетном программировании.

+2

Получает ли sqlcmd код ошибки? Поместите это после вашего sqlcmd, чтобы узнать, не так ли. 'echo% errorlevel%' – Squashman

ответ

2

Выход кода из программы представлена ​​переменной ERRORLEVEL окружения. Используйте if /? для более подробной информации.

sqlcmd -some flags -Q "Query" 
if ERRORLEVEL 1 (
    do this failed 
) ELSE (
    do that success 
) 
+1

Вам нужно удалить символы% или изменить его на 'if% errorlevel% == 1'. – Squashman

+0

Отредактировано относительно комментария @Squashman. – lit

+0

Хорошо, это отлично работает! Но мне интересно, как я мог поймать случай, когда 'sqlcmd' работал, а' sql query' не делал? – JSHelp

3

самый простой способ с conditional execution (я думаю, что SQLCMD имеет различные коды ошибок в случае не успешного выполнения):

sqlcmd -some flags -Q "query" &&(
    echo SUCCESS 
    echo do something 
    color 
)||(
    echo failed 
    echo do something else 
) 
+0

sqlcmd выводит результат, полученный из sql. Я использую флаг '-o', но я не могу себе представить, что это причина. Где я могу получить коды ошибок? – JSHelp

+0

Я предполагаю, что комфортное выполнение - хотя бы - я попробую его – JSHelp

Смежные вопросы