Answers:
我也遇到过这个问题。
解决方案:
.bak
文件还原到该数据库上。要么:
1)WITH REPLACE
在使用RESTORE
命令时使用(如果使用GUI,可以在选项->覆盖现有数据库(WITH REPLACE
)下找到它)。
2)Delete
较旧的数据库发生冲突,请使用RESTORE
命令再次还原。
检查链接以获取更多详细信息。
如果您使用脚本方法,并且遇到有关LDF和MDF文件的错误,则可以首先使用以下方法在备份文件中查询备份集中文件的逻辑名(和其他详细信息):
-- Queries the backup file for the file list in backup set, where Type denotes
-- type of file. Can be L,D,F or S
-- info: https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-filelistonly-transact-sql
RESTORE FILELISTONLY FROM DISK = 'C:\Temp\DB_backup.bak'
GO
您将获得类似于以下内容的结果:
然后可以在查询中使用这些逻辑名:
-- Script assumes you want MDF and LDF files restored on separate drives. Modify for your scenario
RESTORE DATABASE DB
FROM DISK='C:\Temp\DB_backup.bak'
WITH REPLACE,
MOVE 'DB' TO 'E:\MSSQL\Data\DB.mdf', -- "DB" is the mdf logical name from query above
MOVE 'DB_log' TO 'F:\MSSQL\Logs\DB.ldf'; -- "DB_log" is LDF logical name from query above
有关更多信息,请RESTORE FILELISTONLY
参见SQL Server文档。
在执行其他任何操作之前,请确认您的备份是完整备份还是差异备份。如果您尝试通过差异备份创建新数据库,那么无论您做什么,都会遇到该错误。
system.data.sqlclient.sqlerror:备份集保存除现有“ Dbname”数据库以外的数据库的备份
我碰巧找到了灵魂
不要用相同或不同的数据库名称创建数据库!重要。
右键单击数据库| 任务>还原>数据库
在“还原源”下,选择“来自设备”
选择.bak文件
在下面的网格视图中选中数据库的复选框
到数据库:“在这里您可以键入新的数据库名称”(例如:DemoDB)
不要从DropDownlist中选择现有数据库
现在单击确定按钮,它将创建一个新的数据库并从.bak文件中还原所有数据。
希望它能帮助您解决问题...
这总是由于版本不兼容引起的。请按照以下步骤解决:
步骤1:使用您的首选名称创建一个数据库。(在我们的情况下是AdventureWorks)
步骤2:在数据库上单击写入,然后单击任务>>还原>>数据库…
步骤3:在还原屏幕上,转到“选项”的第三选择。现在,选中“覆盖现有数据库(替换)”复选框
步骤4:点击OK(确定)。它应该成功还原数据库。
注意:使用REPLACE还原数据库时,它将覆盖旧数据库。
我遇到的同样问题。对我来说解决方案是:
我必须在本地创建一个新的数据库以进行测试,而我的产品也提供了备份。我首先创建了数据库,然后尝试在新数据库之上运行BAK,这对我产生了此错误。我删除了数据库并还原了它,同时在还原屏幕本身中获取了新的数据库名称。该数据库是在还原时自动创建的。
你们中有些人对此非常复杂。我发现这非常简单。
1)创建一个与您的.bak文件数据库名称相同的数据库!重要
2)右键单击数据库| 任务>还原>数据库
3)在“还原源”下,选择“来自设备”
4)选择.bak文件
5)在下面的网格视图中选中数据库的复选框
6)在右侧的“选择页面”下,选择“选项”
7)选中标有“保留复制设置(通过KEEP_REPLICATION)的复选框”
现在返回“常规”页面,然后单击“确定”以还原数据库...就是这样。
我使用生成脚本通过另一种方式完成了工作。这确实对我有用,因为由于相同的错误,“备份还原”并不能帮助解决问题。
在选项中,将“还原为”文件名更改为新的数据库mdf和ldf。它引用源数据库.mdf和.ldf文件。
而不是点击还原数据库上单击 还原文件和文件组..
多数民众赞成在我的SQL服务器上工作
这有助于我从系统驱动器导入备份文件
WITH MOVE
WITH REPLACE, MOVE