我正在使用Microsoft SQL Server。我有一个数据库,我们可以将它称为.bak格式的database1及其备份。 我需要将备份还原到另一个可以称为database_temp的空白数据库,因此两个数据库都必须存在。我需要从database_temp存档中获取并确认一些数据,然后在结束工作时将其删除。
我做了什么:
1)创建了新的数据库“ database_blank”
2)任务-恢复数据库。在源文件中,选择“设备”,然后选择我的.bak文件,在目标文件中,选择“ database_temp”。
3)在选项中,我选择“使用替换覆盖现有数据库”。
我收到错误消息“数据库还原失败,无法覆盖文件,数据库正在使用它”
答案 0 :(得分:0)
您必须移动数据库文件。
例如
RESTORE DATABASE [AdventureWorks] FROM DISK = 'c:\backup\Adv.bak'
WITH CHECKSUM,
MOVE 'AdventureWorks_Data' TO 'c:\mssql\data\AdventureWorksCopy_Data.mdf',
MOVE 'AdventureWorks_Log' TO 'c:\mssql\log\AdventureWorksCopy_Log.ldf',
RECOVERY, REPLACE, STATS = 10;
移动的第一部分是数据库文件的逻辑文件名。右键单击原始数据库-属性-文件以获取正确的名称。
可以找到完整的语法here