使用PostDeploy的SSDT复合数据库参考

时间:2012-08-21 07:25:26

标签: deployment sql-server-data-tools

我有两个SSDT项目。 Database1引用Database2。

Database projects

部署Database1时,Table2(来自Database2)按预期部署。这是因为在部署时,会选中“包含复合对象”复选框。

问题是只有Database2中的架构/对象与Database1一起部署。作为Database1部署的一部分,脚本中不生成“Script.PostDeployment.sql”文件。但是,当我将Database2直接部署到目标数据库时,它包含在脚本中。

如何在引用的dacpac文件或SSDT项目中包含前/后部署脚本?

1 个答案:

答案 0 :(得分:4)

我相信你将不得不让数据库1的部署后脚本调用数据库2的post部署脚本。比如

 Use SQLCMD syntax to include a file in the post-deployment script.         
 Example:      :r .\myfile.sql  

我看不到任何其他方式,因为在大多数情况下,部署时可能不应运行另一个DB的后部署脚本。您可能还需要考虑将两个数据库部署中需要运行的脚本部分重构为自己的文件,并在后部署脚本中引用它。