创建SQL Server回滚脚本的最佳方法?

Fly*_*wat 6 sql t-sql sql-server-2005 rollback

我正在对现有数据库进行一些架构更改.

我备份了数据库以获取开发副本,并进行了更改.我将创建一个单一的滚动脚本,以便在单个事务中迁移生产计算机上的更改.

是否存在创建回滚脚本的最佳实践,以解决部署问题?在我写之前,然后使用以下模式手工编写:

  • 删除新约束和索引
  • 更改表以删除新列
  • 删除添加的表格
  • 提交交易

有更好的方法吗?

Vin*_*vic 7

你错过了第五步

  • 删除新约束和索引
  • 更改表以删除新列
  • 删除添加的表格
  • 提交交易
  • 在生产中运行之前测试脚本的地狱

一个更有效的方法是,因为它们发生像办理变更登记手续RoR的 迁移 .对于每个数据库更改,您将创建一个脚本,该脚本将应用更改并将其回滚(当然,根据您的选择).然后,您可以像控制代码那样将这些脚本置于版本控制之下.

此外,如果您在数据库中保留版本号,则可以通过使用版本号标识每个脚本并根据执行的操作增加或减少数据库中的版本号来使其自动化更多.


Ric*_*mil 5

基本上就是这样,除了你的方法之外,我认为没有什么可补充的。这就是我们在公司中的做法,我们开发人员负责创建脚本和回滚脚本,并且我们负责使数据库保持应用初始更改之前的相同状态。然后 DBA 在生产中运行它,如果出现问题,他们将运行回滚脚本,一切都会恢复正常。只需记住依赖关系和更改对象的顺序,然后向后创建回滚脚本即可。