1

Visual Studio (2010) GUI は、ターゲットの 2 番目のコマンド変数ファイルを指定するためのオプションを提供します。ただし、コマンドライン実装のこのオプションが見つかりません-vsdbcmd.exe。

ソース モデル コマンド変数のみを使用して dbschema to dbschema に対して vsdbcmd deploy を実行すると、変数を実装するオブジェクトが変更されたものとして扱われるという結果が得られます。その結果、不適切な (不適切な) 更新スクリプトが作成されます。

現在使用しているコマンド:

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、そのようなものが存在する場合...

結果のスクリプトは実行中と同じであるため、ターゲットの sqlcmd vars を指定せずに GUI を比較します

4

2 に答える 2

1

このリンクVSDBCMD.EXEで完全なドキュメントのように見えるものを見つけました。

次のようなものを探していると思います:

/p:SqlCommandVariablesFile=Filepath
于 2013-03-27T22:17:17.873 に答える
0

最後に、必要なことを行う可能性に関する情報は見つかりませんでした-隠しパラメーターのILスパイでvsdbcmdライブラリをチェックしました-何も見つかりませんでした。

ターゲットと現在の両方のdbschemaファイルを解析し、cmd変数の値を直接解析して、変更されたdbschemaで比較を行うことで、目標を達成しました。このアプローチでは、結果のスクリプトで sql cmd 変数を変更することはできなくなりました (値は既にコードに組み込まれているため) が、これは許容できる損失と見なされました。

最も美しい解決策ではありませんが、これまでのところ問題はありませんでした。

于 2013-01-15T14:33:06.443 に答える