我正在尝试从运行SqlServer2005(没有服务包)的服务器升级到运行SqlServer2005 Service Pack 3的服务器。
我试图通过在一个数据库上执行备份,然后在另一个数据库上执行还原来将数据库从一个数据库复制到另一个数据库。
我正在使用ssms。
当我尝试恢复备份时,将其在第一台服务器上创建的DbName称为第二台服务器(我在第二台服务器上创建了一个db DbName),我收到错误消息:
备份集包含现有“DbName”数据库以外的数据库备份
这里发生了什么,我该如何解决?
答案 0 :(得分:3)
如果您创建了一个名为DbName的数据库,并且您尝试从第一台服务器应用不同数据库(也称为DbName)的备份,那么您将收到您尝试的错误备份不同的数据库。这可以防止您使用错误的备份内容意外替换数据库时出现的错误。
有两种解决方案,都是微不足道的:
使用RESTORE命令的WITH REPLACE
选项,以便用不同的数据库备份集替换数据库内容:
指定SQL Server应该 创建指定的数据库及其 相关文件即使是另一个数据库 已存在同名。在 这种情况下,现有的数据库是 删除。
在RESTORE操作之前显式删除现有数据库。
SSMS有一个特殊的向导,可以执行此操作:右键单击数据库Tasks/Copy Database...
,但我宁愿使用直接的T-SQL命令手动执行此操作。