web-dev-qa-db-ja.com

sqlpackage.exeはBlockOnPossibleDataLossを無視しますか?

BlockOnPossibleDataLossをfalseに設定したdacpacがありますが、sqlpackage.exeで実行すると展開がブロックされ、「列[a]が削除されているため、データが失われる可能性があります」と表示されます。

ただし、まったく同じ展開プロファイルを使用してVisual Studio 2012から公開すると、問題は解決します。

14
nojetlag

最後に問題を発見し、エラー処理が次のように設定されているPowerShellスクリプト内でsqlpackage.exeを実行します

$Script:ErrorActionPreference = "Inquire"

inquireを取得できなかったため、sqlpackage.exeに問題があると想定しましたが、ErrorActionPreferenceの設定後に別のPowerShellスクリプトを含めたため、含まれているスクリプトにもErrorActionPreferenceが設定されていましたが、「停止」しました。それでも、BlockOnPossibleDataLoss = falseを設定した場合、エラーにはならないと思いますが、少なくともそれを処理する方法はあります。

2
nojetlag

コマンドラインで/p:BlockOnPossibleDataLoss=falseを指定してsqlpackage.exeを実行してみましたか?

SQLPackage.exeを使用してテストデータベースの.dacpacファイルを作成した後、/p:BlockOnPossibleDataLoss=falseオプションを指定して発行し、データベースを上書きしました。

11
Max Vernon

同じ問題があり、/ p:BlockOnPossibleDataLoss = falseが機能しません。

私の場合、最終的な解決策は、プロジェクトファイルのデバッグ設定でも設定する必要があることです。

Project debug settings

これが誰かを助けることを願っています! :)

2