为什么我必须在 SQL Server 2012 中删除快照才能还原数据库?

Xai*_*oft 3 sql-server-2008 sql-server-2012

我从来不需要使用 SQL Server 2008 删除快照,但是现在当我尝试在 SQL Server 2012 中恢复时,出现错误:

System.Data.SqlClient.SqlError:无法对具有数据库快照或活动 DBCC 副本的数据库执行该操作。

为什么这在 2012 年是必要的,而不是在 2008 年?

Bre*_*zar 6

实际上,您确实必须在还原之前删除快照。这是有关它的在线图书帖子:

http://msdn.microsoft.com/en-us/library/ms189940(v=sql.105).aspx

特别是“无法删除、分离或恢复数据库”。

您可能一直在使用自动为您删除快照的还原脚本或工具。(我自己的恢复数据库脚本就是这样做的 - 首先检查快照并删除它们。)

  • +1 另外,如果您恢复具有快照的不同版本的数据库,那么快照到底有什么用?这将是完全无法使用的。现在,如果`RESTORE` 有一个直观的选项就好了,比如`WITH DROP_EXISTING_SNAPSHOTS` :-) (2认同)