利用未文件化但實用的擴展預存程序 xp_fixeddrives,搭配暫存表即可快速取得各磁碟機剩餘空間(MB/GB)。
DECLARE @tb1 TABLE (drive VARCHAR(20), [MB 可用空間] VARCHAR(20));
INSERT INTO @tb1 EXEC master.dbo.xp_fixeddrives;
SELECT drive,
CAST(CAST((CAST([MB 可用空間] AS DECIMAL(9,2)) / 1024) AS DECIMAL(9,2)) AS VARCHAR) + 'G' AS 剩餘空間
FROM @tb1;
xp_fixeddrives 回傳兩欄:磁碟機代號、剩餘 MB(整數)。sysadmin 權限執行。SELECT DISTINCT
vs.volume_mount_point AS 驅動器,
CAST(vs.available_bytes / 1024.0 / 1024 / 1024 AS DECIMAL(10,2)) AS 剩餘_GB
FROM sys.master_files mf
CROSS APPLY sys.dm_os_volume_stats(mf.database_id, mf.file_id) vs;
此法不需特殊權限,且可見掛載點路徑,建議優先使用。