用 ALTER DATABASE 來修改資料檔案屬性,重點是把 Primary 群組中的資料檔案的最大容量(MAXSIZE)改成「無限制」。
-- 將 Primary 群組中的主資料檔取消最大值限制
ALTER DATABASE testdb
MODIFY FILE (
NAME = TestDB_Pri1, -- ← 這是你建立時指定的檔案邏輯名稱
MAXSIZE = UNLIMITED
);
ALTER DATABASE testdb MODIFY FILE (NAME = TestDB_Pri2, MAXSIZE = UNLIMITED);
ALTER DATABASE testdb MODIFY FILE (NAME = FG1_1, MAXSIZE = UNLIMITED);
你可以用這段 SQL 來查出每個檔案的邏輯名稱(包含 PRIMARY 內的):
USE testdb;
GO
SELECT name AS logical_name, physical_name, type_desc, size
FROM sys.database_files;
當你要針對某個指定的 .ndf 檔案(例如:testdb.ndf)去修改它的設定(例如 MAXSIZE),你不能直接用檔名 .ndf,必須用SQL Server 裡的邏輯名稱(logical name)。
✅ 第 1 步:查出邏輯名稱
USE testdb;
GO
SELECT name AS logical_name, physical_name
FROM sys.database_files;
輸出結果會像這樣:
logical_name physical_name
TestDB_Pri1 D:\database\testdb.mdf
TestDB_Pri2 D:\database\testdb.ndf
...
...
你要找到 physical_name 是 testdb.ndf 的那一行,然後記住對應的 logical_name(例如:TestDB_Pri2)
✅ 第 2 步:使用邏輯名稱去修改
ALTER DATABASE testdb
MODIFY FILE (
NAME = TestDB_Pri2, -- ← 這裡是剛剛查到的 logical_name
MAXSIZE = UNLIMITED
);
ALTER DATABASE ... MODIFY FILE 永遠是用邏輯名稱,而不是 .ndf 檔案名!
先 USE 到對的 DATABASE
再 SELECT 查出檔案清單,確定 logical_name
最後 ALTER DATABASE + MODIFY FILE (NAME=logical_name) 修改