2013-11-26 2 views
2

이상한 문제가 생겼습니다. 쉽게 설명하고 수정할 수 있습니다.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를 작동시키는 방법에 대한 도움을 주시면 매우 감사하겠습니다.

+1

sqlcmd의 전체 경로 만 사용하면됩니다. –

+0

나는 매트가 말한 것에 동의한다. 그 이유는 SQL 설치가 PATH 환경 변수를 수정하여 SQLCMD에 대한 경로를 제공하기 때문입니다. 이 CMD 세션에서는 사용할 수 없습니다. – RGuggisberg

답변

1

이미 알았 듯이 현재 CMD 창은 시스템 PATH 환경 변수에 대한 새로운 변경 사항을 선택하지 않습니다. 어떤 이유로 든 sqlcmd (최선의 해결책이라고 생각합니다)에 전체 경로를 지정하고 싶지 않다면 대신이 작업을 시도해보십시오.

start /wait cmd /c sqlcmd -S %computername%\DATASYM -U sa -P Welcome21ST -i %script% 

이렇게하면 새 창을 생성하고 원래 스크립트로 돌아 가기 전에 sqlcmd 호출이 완료 될 때까지 기다립니다.

+0

SQLCMD에 대한 전체 경로가 정상적으로 작동하므로 이에 대해 알아 보겠습니다. –

+0

해결책을 찾았 기쁘다. 이것을 응답으로 표시하는 것을 잊지 마십시오. :-) – Mark

관련 문제