Похоже, вы пытаетесь использовать команды DOS для создания командного файла, который либо (а) выполняет другие командные файлы, либо (б) выполняет SQLCMD для запуска SQL или сценария SQL.
Вотпара примеров все в одном.Я использую команду DOS START
с переключателем /WAIT
, который будет поддерживать исходный файл "master" в одном окне и выполнять последующий файл или команды в новом окне.Это новое окно остается открытым до тех пор, пока сценарий не завершится и не завершится.
Некоторые из ECHO
, вероятно, не требуются, но сценарий немного перезвонит вам.
@echo off
Итак, это довольно просто в том смысле, что вы просто запускаете скрипт.Если у вас script1.bat есть точки останова, вы можете вернуть ошибку обратно в основной скрипт и немедленно завершить ее.Я не был уверен, что для этого нужен мастер-сценарий.
echo Starting Database Update.
echo.
echo Excuting Script 1
echo.
start /wait C:\path\to\your\script1.bat
echo If there was a problem, break here.
Pause
echo Excuting Script 2
echo.
start /wait C:\path\to\your\script2.bat
echo If there was a problem, break here.
Pause
Вот где использовался тот же START / WAIT для запуска SQLCMD, который в этом случае просто возвращает результаты запроса,Здесь следует отметить, что -Q
(заглавные буквы) выполняет запрос и завершает работу.Если вы используете -q
(в нижнем регистре), он выполнит запрос и останется открытым в SQLCMD, ожидая другого запроса.
echo.
echo Running SQLCMD: "select top 100 * from sys.objects"
start /wait sqlcmd -S (local) -Q "select top 100 * from sys.objects"
И вот как вы можете запустить сценарий sql, который -i
обозначает, но я также не запускал это в START / WAIT как ранее.Не то чтобы вы должны, но я хотел показать оба примера.Это также показывает, что -b
завершит пакетный процесс, если ваш скрипт вернет ошибку, что полезно, если вы запускаете несколько скриптов, которые зависят от успешности первых.
echo.
echo Running SQLCMD from an (-i)nput file:
sqlcmd -S (local) -i C:\path\to\your\script.sql -b
echo.
echo Update Complete.
pause
End
Итак, я предположил, что вы ищете файл .bat или .cmd, который использует SQLCMD.Приведенный мною пример довольно простой, но, надеюсь, он укажет правильный путь.
О!И помните, что CTRL + C прерывает пакетный скрипт в процессе.