如何在SQL Server 2014中回滚UPDATE查询?

时间:2013-07-24 13:34:16

标签: sql-server sql-server-2014

我知道这个问题多次被问过以前版本的SQL Server,但我想知道在SQL Server 2014中这是否更容易。

我熟悉这里显示的其他版本的技术

How can I rollback an UPDATE query in SQL server 2005?

Undo table updates in SQL Server 2008

所以问题是:在SQL Server 2014中是否有任何允许回滚和UPDATE查询的功能在以前的版本中不可用?

我正在谈论已提交的命令 - 我知道如果查询在事务内部,您可以回滚。

我们已经完成了完整,差异和事务日志备份,但我们真的希望避免将备份还原到辅助数据库等的恢复方案......

2 个答案:

答案 0 :(得分:5)

新版本的SQL Server没有任何变化:已提交的事务仍被视为永久性事务,因此回滚的唯一方法是恢复到先前的备份并应用事务日志。

编辑添加...
有几个版本的SQL Server存在另一个工具,那就是快照。可以将数据库还原为以前的快照,例如http://msdn.microsoft.com/en-us/library/ms189281(v=sql.105).aspx处的SQL 2008指令。但是,这不是备份和事务日志的替代品,您仍需要保持可用。您还需要研究快照对性能的影响(如果有的话) - 我无法保证它们的可用性:您可能会发现它们在开发或测试环境中是理想的,但对于生产则不然。

答案 1 :(得分:1)

据我所知,这里没有什么新东西。 MS专注于SQL Server中的企业级功能(在内存查询中,更高的可用性等)。

据我所知,撤消意外更新的选项包括:

  • 第三方日志阅读器需要花费一些$(我知道Apex LogQuest Toad,但也可能有其他人)
  • 恢复另一个数据库中的最新备份并检查数据库之间的区别
  • 花费大量时间尝试使用fn_dblog函数读取事务日志,如here所示