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变量答案 0 :(得分:1)
答案 1 :(得分:0)
最后我发现没有关于可能做我需要的信息 - 用IL间谍检查vsdbcmd libs隐藏参数 - 没找到。
通过解析目标和当前的dbschema文件并将cmd变量值直接解析到它们中来实现我的目标 - 然后在修改后的dbschemas上进行比较。此方法不再允许在生成的脚本中更改sql cmd变量(因为值已经烘焙到代码中),但这被视为可接受的丢失。
不是最美丽的解决方案,但到目前为止我没有遇到任何问题。