2 つの .dacpac ファイルから、次のコマンドを使用して更新スクリプトを取得できます
sqlpackage.exe /Action:Script /SourceFile:"C:\Test\bin\Debug\Test.dacpac" /TargetServerName:localhost\DenaliRC0 /TargetDatabaseName:deploy_Test
これにより、DDL の変更 (スキーマの変更) のみが生成されます。ただし、データの変更は含まれていません。2 つの dacpac からこれらのデータ変更 (DML) を取得できる方法はありますか?
Flowing は、スキーマの変更を取得するために使用する Java コードです。
CommandLineUtils.execute(this.log, "sqlpackage.exe", new String[]
{
"/Action:Script",
"/SourceFile:" + targetDacPac.getAbsolutePath(),
"/TargetFile:" + previousDacPac.getAbsolutePath(),
"/OutputPath:" + scriptOutput.getAbsolutePath(),
"/TargetDatabaseName:changeme",
"/p:ScriptDatabaseOptions=False",
"/p:IgnoreAuthorizer=True",
"/p:IgnoreLoginSids=False",
"/p:DropObjectsNotInSource=True",
"/p:IgnoreFilegroupPlacement=False"
});