Visual Studio に SQL Server データベース プロジェクトがあり、既存のストアド プロシージャを削除しました。また、正確なストアド プロシージャが存在するデータベースをローカルに持っています。
両方で Visual Studio 内からスキーマ比較を実行すると、結果のスキーマ比較ウィンドウで、生成された配置スクリプトにドロップされるストアド プロシージャを確認できます。ただし、Powershell スクリプトから sqlPackage.exe を呼び出すと、生成された配置スクリプトにストアド プロシージャのドロップ ステートメントが含まれません。興味深いことに、ストアド プロシージャに変更を加えると、生成された配置スクリプトに変更ステートメントが含まれます。
削除するときに sqlPackage.exe がドロップ ストアド プロシージャ ステートメントを省略し、変更のために含めるのはなぜですか? sqlPackage.exe にフィードする必要があるパラメーター設定だと思いますが、オプトインではなく、オプトアウトしているようです ( https://msdn.microsoft.com/library/hh550080(vs.103).aspx#Anchor_7 )。
以下は、Powershell からの私のコマンドです。
& 'sqlPackage' '/Action:Script' "/SourceFile:$sourceDacpacFile" "/TargetFile:$targetDacpacFile" "/OutputPath:$outputPath" "/TargetDatabaseName:$targetDatabaseName" "/p:AllowIncompatiblePlatform=$allowIncompatiblePlatform" "/p:BlockOnPossibleDataLoss=$blockOnPossibleDataLoss" "/p:DropIndexesNotInSource=$dropIndexesNotInSource"