首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 修改資料庫邏輯檔案名稱:ALTER DATABASE MODIFY FILE 實戰

     編輯:關於SqlServer

查詢當前邏輯檔案名稱

USE YourDatabase;
SELECT FILE_NAME(1) AS DataFileLogicalName;  -- 通常為 1
SELECT FILE_NAME(2) AS LogFileLogicalName;   -- 通常為 2

-- 或查詢系統檢視
SELECT name AS LogicalName, physical_name, type_desc
FROM sys.database_files;

修改邏輯名稱語法

ALTER DATABASE YourDatabase
MODIFY FILE (
    NAME = 'OldLogicalName',   -- 當前邏輯名稱
    NEWNAME = 'NewLogicalName' -- 新邏輯名稱
);

實戰範例

-- 修改資料檔邏輯名
ALTER DATABASE SalesDB
MODIFY FILE (NAME = 'SalesDB_Data', NEWNAME = 'SalesDB_Primary');

-- 修改記錄檔邏輯名
ALTER DATABASE SalesDB
MODIFY FILE (NAME = 'SalesDB_Log', NEWNAME = 'SalesDB_Log_New');

底層原理

本質上修改 sys.database_files(舊版 sysfiles/sysfiles1)系統表中 name 欄位的值。不涉及實體檔案移動或重命名。

常見應用場景

場景說明
還原資料庫後邏輯名衝突從不同來源還原,邏輯名相同導致後續操作混淆
標準化命名規範統一為 DBName_Type 格式(如 Sales_Data, Sales_Log)
腳本自動化部署部署腳本預期特定邏輯名,需先標準化
多檔案群組管理區分 PRIMARY、SECONDARY、READ_ONLY 等檔案群組

注意事項

  • 資料庫必須處於 ONLINE 狀態
  • 邏輯名稱在資料庫內必須唯一
  • 不影響實體檔案名稱與路徑(需搭配 FILENAME 參數才能移動檔案)
  • 立即生效,無需重啟服務

擴展:移動實體檔案位置

-- 兩步驟:修改路徑 → 離線/上線生效
ALTER DATABASE SalesDB
MODIFY FILE (NAME = 'SalesDB_Data', FILENAME = 'E:\NewPath\SalesDB_Data.mdf');

ALTER DATABASE SalesDB SET OFFLINE WITH ROLLBACK IMMEDIATE;
-- 實際移動 .mdf 檔案至新路徑
ALTER DATABASE SalesDB SET ONLINE;

邏輯名稱是 T-SQL 操作的抽象控制代碼,良好的命名規範能大幅降低維護複雜度,建議納入資料庫部署標準。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved