ここSqlPackage.exeで説明したように、Visual Studio 2012 の Microsoft SSDT からデータベースを同期するために使用できるので、SQL Server データベース プロジェクトに格納されている というソース データベース オブジェクトと一致するように、 というターゲット データベースを同期するために使用しています。TargetDbDbProject
コマンドのアクション/a:PublishによりSqlPackage.exe、DbProject の .dacpac ファイルを TargetDb に同期できますが、デフォルトの引数は、 DbProject に存在しない TargetDb のオブジェクトをドロップしません。
フラグ/p:DropObjectsNotInSource=trueをオンにするとこれは解決しますが、奇妙な動作も作成されます
- このフラグ
/p:DropObjectsNotInSource=trueは、TargetDb にユーザー/ログイン オブジェクトをドロップしますが、これはまったく予期されていません! 私が見つけることができる最も近いものは です/p:DropRoleMembersNotInSource=false /p:DropPermissionsNotInSource=falseが、それらはあまり役に立ちません。 - フラグはフラグ
/p:DropObjectsNotInSource=trueを壊します/p:BlockOnPossibleDataLoss=true。つまり、データ損失が発生した場合、更新アクションはブロックされません。それは私が望んでいるものではありません。
現在、TargetDb で「ゴミ箱」/冗長オブジェクトを受け入れる必要があります:(
私をそこに連れて行くために使用するより良いフラグは何ですか?