我可以在一定天数后恢复交易吗

SP1*_*SP1 4 sql-server-2008 sql-server

我有一个 Sql 脚本文件,它执行一系列操作。我在脚本中有事务,所以如果发生什么事,整个脚本都会回滚。

我的问题是说脚本成功执行并且在测试应用程序时发现了某些错误。

现在我想在说 x 天后恢复脚本中发生的所有操作。这是一个事务性数据库,我不必担心任何新的数据添加,因为这只是一个暂存环境。我关心的是恢复 SQL 脚本本身所做的所有结构或数据修改。有人可以告诉我有哪些选择。

我是否需要在回滚脚本中为原始脚本所做的操作编写完全相反的语句。

示例:
主脚本 -Insert Into Customers values(1,'Test','USA') 回滚脚本 - 从 id = 1 的客户中删除 .. 等其他事务(我已经简化了这一点,我在SQL 脚本文件)

谢谢

谢谢

Bre*_*zar 7

SQL Server 中没有任何内置功能可以撤消语句。您的选择是:

  • 从备份或从数据库快照还原
  • 购买第三方开发工具,如 Red Gate 的 SQL 比较和数据比较——这可能需要创建另一个数据库,进行更改,然后比较它们之间的差异
  • 购买 Quest Litespeed 之类的日志阅读器工具 - 它可以读取 Litespeed 的事务日志备份并为特定事务生成撤消脚本
  • 编写您自己的撤消脚本 - 无论您计划进行什么更改,您都可以自己编写撤消脚本来撤消您的更改