Я новичок в мире программирования и начинаю учить себя через Windows Scripts.В данный момент я застрял.
Я использую сценарий Windows для удаления баз данных в SQL Express.Однако, если база данных не удаляется, мне нужно, чтобы скрипт распознал ответ, чтобы он мог запустить цикл обратного отсчета.Как только цикл заканчивается, у меня есть сообщение, отправленное пользователю, что 3 попытки отбросить БД потерпели неудачу.
Итак, если БД не удаляется и мы получаем ответ от SQL, мне нужен сценарий для его перехвата.
Вот пример ответа: Msg 3701, Уровень 11, Состояние 1, Сервер SDFRLPOS003 \ SQLEXPRESS, Строка 1 Не удается удалить базу данных «хранилище данных», поскольку она не существует или у вас нет разрешения.
Мне не нужен сценарий для распознавания КОНКРЕТНОГО ответа от SQL, просто если он получает ЛЮБОЙ ответ от SQL.
Мой сценарий работает вплоть до ответа от SQL (специально нарисован).Я вижу ответ, а затем сценарий завершается.
Любая помощь будет принята с благодарностью!
На основании приведенного выше примера ответа я попытался использовать:
if "%ERRORLEVEL%"=="11" set /a loopcount=loopcount-1
if "%ERRORLEVEL%" > "0" set /a loopcount=loopcount-1
if "%Msg%"=="3701" set /a loopcount=loopcount-1
Вот что у меня есть:
:SQLDropDBStart
cls
set loopcount=4
:Loop
echo Deleting DBName Database...
sqlcmd -S .\SQLEXPRESS -U XXX -P XXX -Q "drop database DBName"
<<<I DON"T KNOW WHAT TO PUT RIGHT HERE>>>
if %loopcount%==0 goto unableToDropDB
goto successfulDBDrop
Мне нужен скрипт, чтобы попытаться отбросить базу данных до завершения цикла.В конце цикла будет goto
сообщение о том, что БД не может быть удалена, и будут предоставлены следующие шаги пользователю.