0

我知道这个问题在 SQL Server 的早期版本中被问过很多次,但我想知道这在 SQL Server 2014 中是否变得更容易了。

我熟悉此处显示的其他版本的技术

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

在 SQL Server 2008 中撤消表更新

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

我说的是提交的命令——我知道如果查询在事务内部,你可以回滚。

我们有完整的、差异的和事务日志备份,但我们真的希望通过将备份恢复到辅助数据库等来避免恢复场景……

4

2 回答 2

5

较新版本的 SQL Server 没有任何改变:提交的事务仍然被认为是永久性的,因此回滚的唯一方法是恢复到以前的备份并应用事务日志直到该点。

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

于 2013-07-24T13:39:52.387 回答
1

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

据我所知,您撤消意外更新的选项是:

  • 第三方日志阅读器确实要花费一些美元(我知道Apex LogQuest Toad,但可能还有其他的)
  • 在另一个数据库中恢复最新备份并检查数据库之间的差异
  • 花大量时间尝试使用 fn_dblog 函数读取事务日志,如下所示
于 2013-07-24T18:13:26.217 回答