【发布时间】:2019-01-27 21:05:22
【问题描述】:
我正在使用 SQLPackage.exe 实用程序和数据库项目的发布配置文件来运行对 SQL Server 数据库的更改。
据我了解,这是部署过程:
预部署脚本
主要部署
部署后脚本
我在发布配置文件高级设置中选中了“包含事务脚本”选项,但是,这似乎仅适用于主部署部分。
我的问题是:如果主部署失败,是否提交了预部署脚本?此外,如果部署后脚本失败,是否正在提交部署前更改和主要部署更改?
是否可以使发布脚本“原子” - 一切作为一个单元成功或失败?
谢谢。
【问题讨论】:
-
好问题。我还没有找到一种方法来实现这一点。您可以将部署前脚本和部署后脚本放在自己的事务中,但它不会回滚它运行的所有 DDL。
-
部署前和部署后脚本在其余事务之外运行。你需要以某种方式推出自己的产品。理想情况下,在测试环境中运行并确保没有外部更改可能是确保一切顺利运行的最佳选择。
标签: sql-server sql-server-data-tools database-project dacpac sqlpackage