如何提供vsdbcmd deploy命令行目标dbschema sql命令变量?

时间:2012-12-04 17:37:48

标签: sql visual-studio-2010 sqlcmd vsdbcmd

Visual Studio(2010)gui提供了为目标指定第二个命令变量文件的选项。但是我找不到命令行实现的这个选项 - vsdbcmd.exe。

将dbschema的vsdbcmd deploy运行到仅使用源模型命令变量的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变量

2 个答案:

答案 0 :(得分:1)

我在this link找到了VSDBCMD.EXE的完整文档。

我想你可能正在寻找类似的东西:

/p:SqlCommandVariablesFile=Filepath

答案 1 :(得分:0)

最后我发现没有关于可能做我需要的信息 - 用IL间谍检查vsdbcmd libs隐藏参数 - 没找到。

通过解析目标和当前的dbschema文件并将cmd变量值直接解析到它们中来实现我的目标 - 然后在修改后的dbschemas上进行比较。此方法不再允许在生成的脚本中更改sql cmd变量(因为值已经烘焙到代码中),但这被视为可接受的丢失。

不是最美丽的解决方案,但到目前为止我没有遇到任何问题。