从两个 .dacpac 文件中,我可以使用以下命令获取更新脚本
sqlpackage.exe /Action:Script /SourceFile:"C:\Test\bin\Debug\Test.dacpac" /TargetServerName:localhost\DenaliRC0 /TargetDatabaseName:deploy_Test
然而,这只会产生 DDL 更改(模式更改)。但这不包括任何数据更改。无论如何我可以从两个 dacpacs 中获取这些数据更改 (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"
});