使用脚本还原数据库,错误说备份集保存了现有数据库以外的数据库的备份
Using scripts to restore database, error says backup set holds a backup of a database other than existing
我正在编写一个脚本来自动执行使用另一个数据库的 .bak 文件还原一个数据库的过程。我收到错误:
The backup set holds a backup of a database other than the existing
'add_BackupDev' database.
我在网上找到的答案似乎都有一个解决方案,涉及手动完成恢复而不是通过脚本,这对我来说不是一个选项。
这是我的代码。变量 @LastDatabaseRestore 正在为我的 .bak 文件传递适当的文件路径。
RESTORE DATABASE add_BackupDev
FILE = N'FILENAME'
FROM DISK = @LastDatabaseRestore
WITH FILE = 1,
MOVE 'add_backupDev' TO 'R:\DATA\add_BackupDev.mdf',
MOVE 'add_BackupDev_log' TO 'L:\LOG\add_BackupDev.ldf',
NOUNLOAD,
REPLACE;
GO
评论时间太长
使用 WITH REPLACE
选项(如您所列)将用备份中包含的任何数据库覆盖数据库。您在脚本中出现该错误的原因可能是因为您使用了 FILE
选项。
The FILE options preceding the backup device name specify the logical
file names of the database files that are to be restored from the
backup set; for example, FILE = 'FILENAME'
您收到错误的原因可能是备份集不是媒体集中的第一个数据库备份。您需要将正确的数字添加到 WITH
子句中的 FILE
选项。
....
WITH FILE = 1, --this may not need to be 1
....
如果您不必明确指定文件名,则删除两个 FILE
选项。
RESTORE DATABASE add_BackupDev
FROM DISK = @LastDatabaseRestore
WITH
MOVE 'add_backupDev' TO 'R:\DATA\add_BackupDev.mdf',
MOVE 'add_BackupDev_log' TO 'L:\LOG\add_BackupDev.ldf',
NOUNLOAD,
REPLACE;
GO
这应该可以恢复您的数据库。
我正在编写一个脚本来自动执行使用另一个数据库的 .bak 文件还原一个数据库的过程。我收到错误:
The backup set holds a backup of a database other than the existing 'add_BackupDev' database.
我在网上找到的答案似乎都有一个解决方案,涉及手动完成恢复而不是通过脚本,这对我来说不是一个选项。
这是我的代码。变量 @LastDatabaseRestore 正在为我的 .bak 文件传递适当的文件路径。
RESTORE DATABASE add_BackupDev
FILE = N'FILENAME'
FROM DISK = @LastDatabaseRestore
WITH FILE = 1,
MOVE 'add_backupDev' TO 'R:\DATA\add_BackupDev.mdf',
MOVE 'add_BackupDev_log' TO 'L:\LOG\add_BackupDev.ldf',
NOUNLOAD,
REPLACE;
GO
评论时间太长
使用 WITH REPLACE
选项(如您所列)将用备份中包含的任何数据库覆盖数据库。您在脚本中出现该错误的原因可能是因为您使用了 FILE
选项。
The FILE options preceding the backup device name specify the logical file names of the database files that are to be restored from the backup set; for example, FILE = 'FILENAME'
您收到错误的原因可能是备份集不是媒体集中的第一个数据库备份。您需要将正确的数字添加到 WITH
子句中的 FILE
选项。
....
WITH FILE = 1, --this may not need to be 1
....
如果您不必明确指定文件名,则删除两个 FILE
选项。
RESTORE DATABASE add_BackupDev
FROM DISK = @LastDatabaseRestore
WITH
MOVE 'add_backupDev' TO 'R:\DATA\add_BackupDev.mdf',
MOVE 'add_BackupDev_log' TO 'L:\LOG\add_BackupDev.ldf',
NOUNLOAD,
REPLACE;
GO
这应该可以恢复您的数据库。