SQL 資料庫的 邏輯 File Name 變更

 

看到圖中的 File Name 與 資料庫的實際名稱不同,真是怪怪!!

mdf

再加上近來,想將數量眾多的資料庫,以批次方式逐一 Restore 簡化繁瑣的作業及時間,才發現到這個 File Name 是乎不能視而不見,所以興起”改名”的念頭。

首先,回首 Restore 的用法:

  1. 一般型:(將備份資料庫回復成 DB27 ,資料庫存放位置是在 系統默認路徑。)
    RESTORE DATABASE DB27 FROM DISK = 'D:\A-Zip\DB27_20100105\DB27-2010-01-05.bak' 
    Go
  2. 技巧用法:(將備份資料庫回復成 DB27 ,資料庫存放位置是在 指定存放的路徑 中:E:\SQL_DB。)
    RESTORE DATABASE DB27 FROM DISK = 'D:\A-Zip\DB27_20100105\DB27-2010-01-05.bak' 
    WITH
    MOVE 'DB15_Data' TO 'E:\SQL_DB\DB27.mdf',
    MOVE 'DB15_Log' TO 'E:\SQL_DB\DB27_log.ldf'
    Go

在上述的指令中
MOVE 'DB15_Data' TO 'E:\SQL_DB\DB27.mdf',
MOVE 'DB15_Log' TO 'E:\SQL_DB\DB27_log.ldf'

DB15_Data、DB15_Log 就是 SQL 的 邏輯 File Name
'E:\SQL_DB\DB27.mdf'、'E:\SQL_DB\DB27_log.ldf' 則是回復資料庫的存放位置及檔名。

變更 Logical File Name 的語法:
USE master;
GO
ALTER DATABASE database_name
MODIFY FILE
(NAME = logical_file_name, NEWNAME = new_logical_name);
GO

實例語法:
USE master;
GO
ALTER DATABASE DB27 MODIFY FILE (NAME = IEDB15_Data, NEWNAME = IEDB27_Data );
GO
ALTER DATABASE DB27 MODIFY FILE (NAME = IEDB15_Log, NEWNAME = IEDB27_Log );
GO

 

經過這樣的修正後,Restore 的指令就變成:(順眼多了)
RESTORE DATABASE DB27 FROM DISK = 'D:\A-Zip\DB27_20100105\DB27-2010-01-05.bak' 
WITH
MOVE 'DB27_Data' TO 'E:\SQL_DB\DB27.mdf',
MOVE 'DB27_Log' TO 'E:\SQL_DB\DB27_log.ldf'
Go

沒有留言: