2012-07-17 3 views
0

좋은 아침입니다. 누군가 나를 도울 수 있는지 궁금합니다. 나는 내 인생과 다른 사람들이 내 일을 더 쉽게하기 위해 배치 파일을 작성하려고하지만 도움을 찾고 싶었다. 필자는 일반적으로 특정 설치를 설치하기 위해 작성한 다양한 SQL 스크립트를 실행하고이 모든 파일을 배치 파일로 옮기면 더 쉬울 것이라고 결정했습니다. 내가 배치 파일에서 다음 명령을 실행하려고 :배치 파일에서 SQL 명령을 실행하면 오류가 발생합니다.

:T02 
cls 
echo Qualifiers will be installed next with names of 
echo Q_AutoFax_CC_1 
echo Q_AutoFax_CC_2 
echo Q_AutoFax_CC_3 
echo Q_AutoFax_CC_4 
echo Q_AutoFax_CC_5 
pause 
cls 
If Exist "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp.exe" cd "C:\Program Files\Microsoft SQL Server\100\Tools\Binn" 
If Exist "C:\Program Files\Microsoft SQL Server\90\Tools\Binn\bcp.exe" cd "C:\Program Files\Microsoft SQL Server\90\Tools\Binn" 
If Exist "C:\Program Files\Microsoft SQL Server\80\Tools\Binn\bcp.exe" cd "C:\Program Files\Microsoft SQL Server\80\Tools\Binn" 


sqlcmd /U eiw_admin /P eiw_admin /d cabinet /S . /Q 
"declare @q int 
select @q = 1 
While @q < 6 
    Begin 
     Insert into cabinet..qualifiers 
     select 'HL7', 'Q_AutoFax_CC_'+ convert(varchar(2),@q), 
     '%Physician_Code'+ convert(varchar(2),@q)+'% == (NULL) || %Physician_Code'+ convert(varchar(2),@q)+'% == (BLANK)', 'R'  
    select @q = @q + 1 
    End" 

pause 
cls 

나는 일반적으로 단지 실행 : SQL에서

declare @q int 
select @q = 1 
While @q < 6 
    Begin 
     Insert into cabinet..qualifiers 
     select 'HL7', 'Q_AutoFax_CC_'+ convert(varchar(2),@q), 
     '%Physician_Code'+ convert(varchar(2),@q)+'% == (NULL) || %Physician_Code'+ convert(varchar(2),@q)+'% == (BLANK)', 'R'  
    select @q = @q + 1 
    End 

하고 잘 실행 ... 난 SQL은에 이전 명령을 사용했다 배치 파일 ... 루프가 아닌 일반 명령이기 때문에이 작업을 수행해야하는 다른 것이 있습니까? 이 파일은 데이터베이스 서버에서 실행 된 것을 내가 오류가 점점 오전 : 삽입, 선택, 선택 시작과

Sqlcmd: '-Q': Missing argument. Enter '-?' for help. ' "declare @q int' is not recognized as an internal or external command, operable program or batch file 

..... 같은 일 .... 등

나는 경우 생각을 당신은 SQLCMD를 실행하고 싶었습니다. 명령을 작은 따옴표로 묶어야했습니다. 맞지 않습니까?

답변

1

배치 파일의 SQL 문은 sqlcmd 문과 동일한 줄에 있어야합니다. SQL 문을 별도의 파일에 넣고 -i 스위치를 사용하여 파일에서 쿼리를 읽는 것이 가장 쉽습니다.

+0

yup .... 그게 다 .... 일반적으로 하나의 라이너 인 간단한 SQL 명령을 수행하며, 여러 개의 SQL 명령을 여러 번 사용하여 처음부터 잘 이해하지 못했습니다. 정말 고마워 –

관련 문제