2012-11-20 1 views
1

창에서 SQLCMD 문 (SQL Server 2008의 보관 테이블과 복원 스크립트 생성)을 실행하려고합니다. 내 스크립트 내가 SQL 인증을 수행하는 첫 번째처럼 작동하고 출력 한 후 I 입력 SQL 스크립트는 SQL 인증을 수행 한 후 Windows 배치 파일 내에서 여러 sqlcmd 문을 실행하는 방법

sqlcmd -S <Server name>\<instance> -U user 
sqlcmd -i ArchiveTable1.sql -o RestoreTable1.sql 
sqlcmd -i ArchiveTable2.sql -o RestoreTable2.sql 
sqlcmd -i ArchiveTable3.sql -o RestoreTable3.sql 

문제가 SQLCMD 인증 후, 프롬프트 1이 나타나는 것입니다> 나의 다음 문을 실행하지 않는 파일

을 복원 할 수 있습니다. Quit를 입력하면 다음 문장이 실행되지만 출력 파일에 잘못된 인증 오류가 표시됩니다. 각 sqlcmd 문에 sql 인증을 갖고 싶지 않습니다.

내 접근 방식에 문제가있는 경우 누군가 다른 디자인을 사용하도록 안내 할 수 있습니까?

답변

1

세 SQLCMD 실행, 세 가지 인증은 :

sqlcmd -S <Server name>\<instance> -U user -i ArchiveTable1.sql -o RestoreTable1.sql 
sqlcmd -S <Server name>\<instance> -U user -i ArchiveTable2.sql -o RestoreTable2.sql 
sqlcmd -S <Server name>\<instance> -U user -i ArchiveTable3.sql -o RestoreTable3.sql 

나는 각 SQLCMD 문 당신은 문제가 좀 원하는 것은

과 SQL 인증을 가지고 싶지 않다. 올바른 것을해야합니다. 비정상적인 요구 사항에 대한 정당성이있는 경우 문제을 분명히 말하면 해결 방법을 제공하지 말고 문제를 해결하도록 요청하십시오.

당신이 일괄 적으로 사용자 정보 및 암호를 반복하지 않도록하려면, 그리고 더 중요한 것은 당신이 일괄 적으로 주위에 거짓말이 암호를 떠나 피하려면 SQLCMD 환경 변수 SQLCMDUSER and SQLCMDPASSWORD 사용하는 경우 :

SQLCMDPASSWORD 환경 변수를 현재 세션의 기본 암호를 설정할 수 있습니다. 따라서 암호를 배치 파일에 하드 코딩 할 필요가 없습니다.

는 단순히 SQLCMDUSER, SQLCMDPASSWORD (그리고 어쩌면 SQLCMDSERVER) 다음은 배치를 호출 설정합니다. 이렇게하면 일괄 처리에 하드 코드 된 비밀번호가 필요하지 않습니다.

+0

각 sqlcmd 문 다음에 암호를 입력해야합니다. 항상이 배치 파일을 실행할 시스템에 대한 액세스 권한이 없으므로이 대화 형 암호 프롬프트를 건너 뛰고 싶었습니다. 따라서 배치 파일에 약 30 개의 sqlcmd 문이 실행될 때 실행 프로세스를 감독 할 수 없습니다. – adbrpc