假设我有一个名为 SQL Server 的数据库bubu,并且相应的备份文件是bubu.bak.
如果我想使用自定义位置的后备存储恢复它,我使用以下 T-SQL 语句:
RESTORE DATABASE "bubu2" FROM DISK = N'C:\bubu.bak' WITH REPLACE, STATS = 10,
MOVE N'bubu' TO N'C:\custom\bubu.mdf', MOVE N'bubu_log' TO N'C:\custom\bubu.LDF'
Run Code Online (Sandbox Code Playgroud)
所以我有一个新的数据库bubu2,它恰好是bubu. 这里重要的是我假设备份包含逻辑文件bubu和bubu_log,因为备份文件名为bubu.bak.
现在,假如有人重命名bubu.bak来mumu.bak。这样做,打破了我的逻辑,因为现在我将尝试这个 T-SQL 语句:
RESTORE DATABASE "mumu2" FROM DISK = N'C:\mumu.bak' WITH REPLACE, STATS = 10,
MOVE N'mumu' TO N'C:\custom\mumu.mdf', MOVE N'mumu_log' TO N'C:\custom\mumu.LDF'
Run Code Online (Sandbox Code Playgroud)
当然,我失败了,因为mumu.bak不包含逻辑文件mumu并且mumu_log- 重命名备份文件不会重命名备份中包含的逻辑文件(当然)。
但是,如果备份文件被重命名,我该怎么做?