使用 REPLACE 恢复数据库

当你尝试从另一台服务器还原数据库时,你可能会收到以下错误:

错误 3154:备份集包含现有数据库以外的数据库的备份。

在这种情况下,你应该使用 WITH REPLACE 选项将数据库替换为备份中的数据库:

RESTORE DATABASE WWIDW
FROM DISK = 'C:\Backup\WideWorldImportersDW-Full.bak'
WITH REPLACE

即使在这种情况下,你可能会收到错误,指出文件不能位于某个路径上:

消息 3156,级别 16,状态 3,行 1 文件’WWI_Primary’无法恢复为’D:\ Data \ WideWorldImportersDW.mdf’。使用 WITH MOVE 标识文件的有效位置。

发生此错误可能是因为你的文件未放在新服务器上存在的同一文件夹路径上。在这种情况下,你应该将单个数据库文件移动到新位置:

RESTORE DATABASE WWIDW
FROM DISK = 'C:\Backup\WideWorldImportersDW-Full.bak'
WITH REPLACE,
MOVE 'WWI_Primary' to 'C:\Data\WideWorldImportersDW.mdf',
MOVE 'WWI_UserData' to 'C:\Data\WideWorldImportersDW_UserData.ndf',
MOVE 'WWI_Log' to 'C:\Data\WideWorldImportersDW.ldf',
MOVE 'WWIDW_InMemory_Data_1' to 'C:\Data\WideWorldImportersDW_InMemory_Data_1'

使用此语句,你可以将数据库替换为移动到新位置的所有数据库文件。