이상한 문제가 생겼습니다. 쉽게 설명하고 수정할 수 있습니다.SQLServer 설치 후 배치 파일에서 SQLCMD 실행
많은 프로그램을 설치하기 위해 .bat 파일을 사용하고 있는데, 그 중 하나는 SQL Server 2012입니다 (문제가된다면 다른 설치 프로그램은 .net 프레임 워크, OPOS 드라이버 및 SQL 서버를 사용하는 POS 소프트웨어) .
SQL (SSMS 사용)을 포함한 모든 것을 자동으로 설치하도록 배치 파일을 얻을 수 있습니다. 그러나 일단 SQL Server가 설치되면 데이터베이스를 작성/첨부하기 위해 몇 가지 SQL 스크립트를 실행하고 싶습니다.
나는 설치가 작동하지 않는다는 것을 안다. (만약 설치가 아닌 다른 것을 시도한다면), SQLCMD가 작동한다는 것을 안다. (설치 후 별도로 실행하면). SQLCMD를 설치 한 후 동일한 배치 파일에서 표준 'SQLCMD가 내부 또는 외부 명령으로 인식되지 않습니다 ...'와 함께 실패합니다. '
여기에 넣으려면 CMD를 다시 시작해야합니다. 새 명령 (예 : SQLCMD)을 다시 인식하므로 SQLCMD 명령을 별도의 배치 파일로 분리하여 호출하지만 여전히 작동하지 않습니다. CMD.exe가 새 명령을 선택하기 전에 실제로 원래 배치 파일을 닫아야합니다.
그래서 ... 새로 설치 한 SQLCMD 명령을 원래 배치 파일에서 사용할 수 있도록 cmd.exe를 '새로 고'할 수 있습니까 ??
내 스크립트의 일부입니다. (필자는 SQL 서버 이전 설치 다른 모두 제거했습니다 참고)
@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를 명령으로 인식하지 못합니까 ??
는 I 라인 교체하려고 : 그 다른 CMD, EXE를 (그것이 않음) 열 것이라고 생각대로call sqlscript.bat
으로
sqlcmd -S %computername%\DATASYM -U sa -P Welcome21ST -i %script%
를 그래서 추정하는 제 CMD 것 ew 명령 (SQLCMD)을 참조하십시오.
원본 배치 파일에서 SQLCMD를 작동시키는 방법에 대한 도움을 주시면 매우 감사하겠습니다.
sqlcmd의 전체 경로 만 사용하면됩니다. –
나는 매트가 말한 것에 동의한다. 그 이유는 SQL 설치가 PATH 환경 변수를 수정하여 SQLCMD에 대한 경로를 제공하기 때문입니다. 이 CMD 세션에서는 사용할 수 없습니다. – RGuggisberg