用SQL語句還原資料庫時如果不指定資料庫文件的存儲路徑,則預設把數據文件和日誌文件存放到與原資料庫相同的文件路徑中,這樣可能會產生錯誤,比如執行下麵的語句: restore database SmartDev_11_28from disk='D:\Backup\SmartDev_2017090401 ...
用SQL語句還原資料庫時如果不指定資料庫文件的存儲路徑,則預設把數據文件和日誌文件存放到與原資料庫相同的文件路徑中,這樣可能會產生錯誤,比如執行下麵的語句:
restore database SmartDev_11_28
from disk='D:\Backup\SmartDev_20170904010000_413.bak'
得到如下的錯誤信息:
想要在語句中指定文件路徑需要用with move,
restore database 資料庫名
from disk='備份文件路徑'
with move '邏輯文件名' to '還原後資料庫數據文件存放路徑'
move '邏輯日誌名' to '還原後資料庫日誌文件存放路徑'
這裡的邏輯文件名和邏輯日誌名可以通過下麵的語句來查看:
restore filelistonly
from disk='D:\Backup\SmartDev_20170904010000_413.bak'
還原代碼如下:
restore database SmartDev_11_28
from disk='D:\Backup\SmartDev_20170904010000_413.bak'
with recovery,
move 'Intertek.Smart.Dev' to 'D:\DataBase\SZDBF8NBD2\SmartDev_11_28\SmartDev_11_28.mdf',
move 'FileStreamGroup_4D837C1B' to 'D:\DataBase\SZDBF8NBD2\SmartDev_11_28\SmartDev_FileStreamGroup_4D837C1B.mdf',
move 'Intertek.Smart.Dev_log' to 'D:\DataBase\SZDBF8NBD2\SmartDev_11_28\SmartDev_11_28.ldf',
move 'filestream_data' to 'D:\DataBase\SZDBF8NBD2\SmartDev_11_28\filestream_data',
move 'FileStream1' to 'D:\DataBase\SZDBF8NBD2\SmartDev_11_28\FileStream1'
還原資料庫成功。
還原後資料庫各文件存放在該目錄下。