2010-07-14 5 views
1

OK, 여기 시나리오가 있습니다.CruiseControl.NET에서 sqlcmd를 실행할 때 적용되지 않는 매개 변수

CruiseControl.NET (버전 : 1.5.7256.1)은 데이터베이스를 다시 작성하기위한 프로젝트를 실행합니다. CruiseControl.NET Windows 서비스는 CC.NET 용으로 만든 Windows 사용자로 실행됩니다. 프로젝트에는 몇 가지 작업이 있지만 모두 잘 돌아갑니다. 그러나 실행되는 작업 중 하나는 배치 파일을 생성하고 .NET Process 클래스의 인스턴스를 통해 실행하는 C#으로 작성한 콘솔 기반 유틸리티입니다.

배치 파일이 올바르게 생성되고 프로세스가 C#에서 제대로 실행됩니다. 그러나 실행되는 배치 파일은 SQLServer (버전 2005 SP3) 용 sqlcmd 명령 줄 유틸리티를 실행합니다. sqlcmd는 예상대로 실행되지만 sqlcmd 옵션 중 하나는 적용되지 않습니다. -I (따옴표 붙은 식별자 켜기).

sqlcmd -U %1 -P %2 -S %3 -d %4 -i someScript.sql -k -b -I >> %LogFileName% 

이상한 점은 연속 통합 서버의 명령 프롬프트에서이 명령을 실행하면 -I가 적용되어 실행된다는 것입니다.

나는 매우 혼란 스럽다. 나는 프로세스를 실행하는 사용자에게 충분한 권한이 없기 때문에 sqlcmd이 실패했는지 이해할 수 있습니다. SQLServer 인증에 실패하면 SQLServer 측에 문제가 있는지 이해할 수 있지만 작업은 수행하지만 옵션은 적용하지 않습니다. sqlcmd이 신비 스럽습니다.

답변

0

내가 마지막 매개 변수이기 때문일 수 있습니까? 아마도 거기에 뭔가가 누락 된 공간이 있습니다. 매개 변수 순서를 바꾸려고 했습니까?

(또한 배치 파일을 만드는 C# 콘솔 앱을 실행하고 있는데 왜이 파일을 실행할 수 없습니까?)

관련 문제