我有一个VST15的SSDT项目,并使用SqlPackage.exe生成部署脚本和增量更新脚本。数据库项目包含部署后脚本。这是我如何生成数据库安装的主脚本:
sqlpackage.exe
/a:Script
/op:"database.sql"
/sf:"database.dacpac"
/tsn:"localhost"
/tdn:"MyDbName"
/p:CommentOutSetVarDeclarations="True"
/p:ScriptDatabaseCompatibility="True"
/p:IgnoreFileAndLogFilePath="True"
/p:IgnoreFilegroupPlacement="True"
/p:ScriptFileSize="True"
/p:PopulateFilesOnFilegroups="False"
这将输出我使用 sqlcmd.exe 运行的 database.sql 文件。脚本文件还包含我的所有后期部署脚本(插入,更新等)。
一旦我有了新版本的数据库,我就会从以前拍摄的dacpac快照中创建增量更新脚本:
sqlpackage.exe
/a:Script
/op:"%migratePath%\%database%.!build!-%version%.sql"
/sf:"%snapshotPath%\%database%.%version%.dacpac"
/tf:"%snapshotPath%\%database%.!build!.dacpac"
/tdn:"MyDbName"
/p:CommentOutSetVarDeclarations="True"
/p:AllowIncompatiblePlatform="True"
/p:IgnorePermissions="True"
/p:IgnoreRoleMembership="True"
/p:ExcludeObjectTypes=Users;Credentials;Logins;Permissions;RoleMembership;ServerRoles;ServerRoleMembership;
这工作正常,但是,增量更新脚本不包含元数据/参考数据(例如,国家,州,货币等的列表)。
有没有办法告诉SqlPackage生成包含表引用数据的增量脚本?