【问题标题】:How to provide vsdbcmd deploy command line target dbschema sql command variables?如何提供 vsdbcmd deploy 命令行目标 dbschema sql 命令变量?
【发布时间】:2012-12-04 17:37:47
【问题描述】:

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

运行 vsdbcmd deploy for 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 vars

【问题讨论】:

    标签: sql visual-studio-2010 sqlcmd vsdbcmd


    【解决方案1】:

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

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

    /p:SqlCommandVariablesFile=Filepath
    

    【讨论】:

    • 根据我最初的问题,我已经使用了这个参数,但是它不会影响目标 dbschema,从而导致脚本将任何带有变量的项目视为更改。
    【解决方案2】:

    最后,我没有找到有关执行所需操作的可能性的信息 - 检查了带有 IL spy 的 vsdbcmd 库的隐藏参数 - 没有找到任何信息。

    通过解析目标和当前的 dbschema 文件并将 cmd 变量值直接解析到其中来达到我的目标 - 然后对修改后的 dbschema 进行比较。这种方法不再允许在生成的脚本中更改 sql cmd vars(因为这些值已经被烘焙到代码中),但是这被认为是可以接受的损失。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多