Я столкнулся с нечетной проблемой, которая, я уверен, легко объясняется и исправляется.Запуск SQLCMD из пакетного файла после установки SQLServer
Я использую .bat-файл для установки большого количества программ, одним из которых является SQL-сервер 2012 года (если это имеет значение, другие установки - это просто .net framework, OPOS-драйверы и программное обеспечение POS, которое использует SQL-сервер) ,
Я могу получить командный файл, чтобы тихо установить все, включая SQL (с SSMS), что отлично. Но как только SQL Server установлен, я хотел бы запустить несколько SQL-скриптов для создания/прикрепления баз данных.
Я знаю, что установка работает (если я не пытаюсь сделать ничего, кроме установки), и я знаю, что SQLCMD работает (если я запускаю его отдельно, после установки), но если я попытаюсь запустить SQLCMD после установки, в том же командном файле он не работает со стандартным «SQLCMD не распознается как внутренняя или внешняя команда ...»
Я поставил это на необходимость перезапустить CMD, чтобы получить его recoginise новую команду (то есть SQLCMD), поэтому я решил, что я разделил команды SQLCMD в отдельный командный файл и назову его, но он все равно не работает. Я должен физически закрыть мой оригинальный пакетный файл до того, как CMD.exe подберет новые команды.
Итак ... возможно ли «обновить» cmd.exe, чтобы вновь установленные команды SQLCMD можно было использовать из исходного пакетного файла?
Здесь (некоторые из) моего сценария. (Обратите внимание, что я удалил все другие до установки SQL Server)
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
"%~dp0SQLServer.exe" /QS /INDICATEPROGRESS /ACTION=install /FEATURES=SQL,SSMS /INSTANCENAME=Datasym /SECURITYMODE=SQL /SAPWD=Welcome21ST /IACCEPTSQLSERVERLICENSETERMS
echo.
echo SQL Server installed
sqlcmd -S %computername%\DATASYM -U sa -P Welcome21ST -i %script%
В %script%
изменения переменных (как я уже сказал, есть несколько сценариев, которые я хотел бежать). И я знаю, что сами скрипты работают.
Почему CMD не распознает SQLCMD как команду?
Я попытался заменить строку:
sqlcmd -S %computername%\DATASYM -U sa -P Welcome21ST -i %script%
с
call sqlscript.bat
, как я думал, что будет открыть еще один CMD, EXE (что он делает), поэтому я предположил, что второй CMD будет см. команду ew (SQLCMD), но это не похоже на.
Любая помощь по поводу того, как я могу получить SQLCMD для работы в исходном пакетном файле, будет с благодарностью оценена.
просто используйте полный путь к sqlcmd. –
Я согласен с тем, что говорит Мэтт. Причина в том, что установка SQL, вероятно, изменяет переменную среды PATH, чтобы обеспечить путь к SQLCMD. Это НЕ доступно для этой сессии CMD. – RGuggisberg