2012-12-04 88 views
1

Visual Studio(2010)gui提供了用於爲目標指定第二個命令變量文件的選項。但是我無法找到命令行實現的這個選項 - vsdbcmd.exe。如何提供vsdbcmd部署命令行目標dbschema sql命令變量?

運行vsdbcmd將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" 

比較什麼即時尋找的是/p:TargetSqlCommandVariablesFile,如果這樣的事情存在?

結果腳本是一樣的運行,所以GUI沒有指定sqlcmd變量爲目標

回答

0

最後,我發現沒有任何信息可以做我所需要的 - 檢查vsdbcmd與IL間諜隱藏參數庫 - 沒有發現任何。

通過解析目標和當前的dbschema文件並直接解析cmd變量值 - 然後在修改後的dbschemas上進行比較,實現了我的目標。這種方法不再允許在結果腳本中更改sql cmd變量(因爲這些值已經被編入代碼中),但是這被認爲是可以接受的損失。

不是最美麗的解決方案,但到目前爲止,我沒有遇到任何問題。

1

我發現什麼看起來像VSDBCMD.EXEthis link的完整文檔。

我想你可能會尋找類似:

/p:SqlCommandVariablesFile=Filepath 
+0

正如我原來的問題這個參數我已經使用,但它不影響導致腳本中以變量作爲改變治療任何項目目標的dbschema。 – drk