撤消对存储过程的更改

Rap*_*hra 3 sql recovery stored-procedures sql-server-2005 data-recovery

我改变了存储过程,并在不知不觉中覆盖了另一个开发人员对其进行的一些更改.有没有办法撤消更改并恢复旧脚本?

不幸的是,我没有该数据库的备份,因此排除了该选项.

Boh*_*ian 9

答案是肯定的,你可以把它拿回来,但这并不容易.所有数据库都记录对其所做的每个更改.你需要:

  1. 关闭服务器(或至少将其置于只读模式)
  2. 完整备份服务器
  3. 获取事故发生之前返回的所有db日志文件的副本
  4. 将备份还原到另一台服务器上
  5. 使用数据库管理工具,回滚日志文件,直到您"撤消"事故
  6. 检查存储过程中恢复的代码并将其重新编码回当前版本

最重要的是:在源控制下获取您的存储过程代码

大多数人都没有"得到"这个概念:你只能对数据库进行更改 ; 您不能像应用程序代码一样回滚代码版本.要"回滚",您必须进行更多更改并删除/定义存储过程(或其他).

对于nitpickers的注意事项:通过"回滚"我并不是指"交易回滚".我的意思是你已经做出了改变,并决定一台服务器回来了,改变是不好的.

  • 强制性的挑剔评论:`nitpickers`不是'nickpicker` (4认同)