Если вы используете подход сценария и есть ошибка относительно СОЛ и 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 .
WITH MOVE
, и была исправлена с помощьюWITH REPLACE, MOVE
.