Jika Anda menggunakan pendekatan skrip dan memiliki kesalahan terkait file LDF dan MDF, Anda dapat terlebih dahulu meminta file cadangan untuk nama logis (dan detail lainnya) dari file dalam set cadangan, menggunakan yang berikut ini:
-- 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
Anda akan mendapatkan hasil yang serupa dengan yang berikut:
Dan kemudian Anda bisa menggunakan nama-nama logis itu di kueri:
-- 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
Info lebih lanjut tentang RESTORE FILELISTONLY
dapat ditemukan dari dokumen SQL Server .
WITH MOVE
, dan diperbaiki dengan menggunakanWITH REPLACE, MOVE
.