【问题标题】:Getting SqlServer2005 error: backup set holds a backup of a database other than the existing 'DbName' database出现 SqlServer2005 错误:备份集包含数据库的备份,而不是现有的“DbName”数据库
【发布时间】:2010-06-17 16:14:07
【问题描述】:

我正在尝试从运行 SqlServer2005(无服务包)的服务器升级到运行 SqlServer2005 服务包 3 的服务器。

我正在尝试将数据库从一个数据库复制到另一个数据库,方法是先备份一个数据库,然后再还原另一个数据库。

我正在使用 ssms。

当我尝试将在第一台服务器上创建的 DbName 的备份恢复到第二台服务器上时(我在第二台服务器上创建了一个 db DbName),我收到错误消息:

备份集保存现有“DbName”数据库以外的数据库的备份

这是怎么回事,我该如何解决?

【问题讨论】:

  • “备份和恢复数据库”主题涵盖了非常非常大的问题集。您能否提供有关如何创建备份以及如何尝试还原它们的更详细信息?越详细(包括文件、驱动器和文件夹)越好。

标签: sql-server sql-server-2005 database-restore


【解决方案1】:

如果您创建了一个名为 DbName 的数据库,并且您尝试从第一台服务器应用 不同 数据库(也称为 DbName)的备份,那么您将收到您尝试的错误备份不同的数据库。这可以防止您意外用错误的备份内容替换数据库的错误。

有两种解决方案,都很简单:

  • 使用RESTORE 命令的WITH REPLACE 选项,以便将数据库内容替换为不同的数据库备份集:

    指定 SQL Server 应该 创建指定的数据库及其 相关文件,即使另一个数据库 已经存在同名。在 在这种情况下,现有的数据库是 已删除。

  • 在 RESTORE 操作之前显式删除现有数据库。

SSMS 有一个特殊的向导可以做到这一点:右键单击数据库,Tasks/Copy Database...,但我更愿意使用直接的 T-SQL 命令手动完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    相关资源
    最近更新 更多