需求: 数据库中有数据库A,我们想把它的内容复制到数据库B中去,在恢复的时候不管是选择From database还是From device都会碰到类似下面的异常信息:
异常: System.Data.SqlClient.SqlError: The file 'C:\xxx\A.MDF' cannot be overwritten. It is being used by database 'A'.
原因: SQL Server 备份时把原数据库的绝对路径都写进去了,这会给根据备份文件恢复到新数据库带来了麻烦。恢复到新数据库时日志文件(.ldf)会自动改名成A_1.ldf,但是数据文件(.mdf)的名称不会改变,这就导致了以上异常的发生。
解决方案:
- 恢复数据库时,单击左边的“Option”,在右侧,你会看到“Restore Options,勾选” Overwrite the existing database.
- 在Restore the database as选项表格中有两行,一行是数据文件,一行是日志文件,在Restore As列中将他们分别改为你新数据库名(B.mdf, B.ldf).
- 点击OK既可正确恢复数据了。