私は、テスト環境に夜間に自動的にデプロイしようとしているVisual StudioにDatabase projectを持っています。これを達成するために、PowerShellスクリプトを利用して "SqlPackage.exe"を実行して、その日に発生した変更を展開するTFSを使用しています。このprocの影響を与える変更を展開する場合
$(ESCAPE_SQUOTE(JOBID))
、:
私のprocsのいくつかは、エージェントのジョブステップの一部であり、(動的SQLで)following codeを含むスクリプトの内部で実行されるロジックが含まれています
SQL Execution error: A fatal error occurred. Incorrect syntax was encountered while $(ESCAPE_SQUOTE(was being parsed.
これ
は、それがサポートされていないかのようにそれが表示され、 known issueです:私は、次の問題を取得します。 variableとして$(文字を誤って解釈「sqlcmdの」コマンドの関数であることが表示されます?"override the value of a SQL command (sqlcmd) variable used during a publish action."
は、どのように私はこの問題を回避んそれはあなたができること「のsqlcmd」の主要な限界のようです「がtはあなたが( 『-x』引数を、それを供給することによって、 『sqlcmdの』からの変数置換を無効にすることができてと1
はそう
更新...私はことをサポートするパラメータが表示されていない、変数を無効にしますSource,Documentation):
-x (disable variable substitution)
「SqlPackage.exe」からこれを行う方法はまだありません。
'sqlpackage.exe'コマンドを直接使用すると、同じ結果が得られます。だからこの問題はTFSには関係していないようです。 –
これは 'sqlpackage.exe'コマンドで直接問題にはなりません。本当に必要なのは、コードをデプロイするときにパラメータを無効にする方法です。私はsqlpackageは、デプロイ時にsqlcmdを呼び出すと思いますが、変数を無効にすることができるオプションは表示されません。 –