2012-12-04 6 views
1

Visual Studio (2010) gui는 대상에 대한 두 번째 명령 변수 파일 지정 옵션을 제공합니다. 그러나 vsdbcmd.exe 명령 줄 구현을 위해이 옵션을 찾을 수 없습니다.vsdbcmd에서 명령 줄 대상 dbschema sql 명령 변수를 배포하는 방법은 무엇입니까?

주어진 소스 모델 명령 변수 만 사용하여 dbschema에서 dbschema로 dbschema를 배포하면 변수를 구현하는 객체가 변경된 것으로 처리됩니다. 잘못된 (부적절한) 업데이트 스크립트가 생성되었습니다.

는 명령 내가 현재 사용

vsdbcmd.exe /a:deploy /dd:- /dsp:sql /model:Source.dbschema /targetmodelfile:Target.dbschema /p:SqlCommandVariablesFile=Database.sqlcmdvars /manifest:Database.deploymanifest /DeploymentScriptFile:UpdateScript.sql /p:TargetDatabase="DatabaseName" 

비교 어떤 메신저 같은 것은 존재하는 경우 ...

결과 스크립트가 너무 GUI를 실행하는 것과 동일의 /p:TargetSqlCommandVariablesFile입니다 찾고를 지정하지 않고 sqlcmd 대상에 대한 vars

답변

0

결국 나는 내가 원하는 것을 할 수있는 가능성에 대한 정보를 찾지 못했습니다 - 숨겨진 매개 변수에 대해 IL 스파이로 vsdbcmd libs를 검사했는지 - 아무 것도 찾지 못했습니다.

목표와 현재 모두에 대해 dbschema 파일을 구문 분석하고 cmd 변수 값을 직접 파싱 한 다음 수정 된 dbschemas에서 비교 작업을 수행했습니다. 이 접근법은 결과 스크립트에서 SQL cmd 변수를 더 이상 변경할 수 없지만 (값은 이미 코드로 구워 졌으므로) 허용되는 손실로 간주됩니다.

가장 아름다운 해결책은 아니지만 지금까지 아무런 문제가 없었습니다.

1

VSDBCMD.EXE에 대한 전체 설명서가 this link 인 것으로 나타났습니다. 그러나 그것은 변화 등의 변수 항목을 처리하는 스크립트의 결과로 대상 DBSCHEMA에 영향을 나던, 내 원래의 질문에 난 이미이 매개 변수를 사용하여로

/p:SqlCommandVariablesFile=Filepath 
+0

:

난 당신 같은 뭔가를 찾고 할 수있다 생각합니다. – drk