4

データベースが存在するドライブの空き容量を特定する必要があります。手順は知っていxp_fixeddrivesますが、データベースが存在する特定のドライブの情報を取得するにはどうすればよいですか?

4

3 に答える 3

6

このようなもの?

declare @DatabaseName sysname 
set @DatabaseName = 'master'

declare @Drive table(DriveName char, FreeSpaceInMegabytes int)
insert @Drive execute xp_fixeddrives

select 
    mas.type_desc FileType, 
    mas.name FileName, 
    mas.physical_name PhysicalFileName, 
    mas.size * 8 / 1024 FileSizeInMegabytes,
    drv.DriveName, 
    drv.FreeSpaceInMegabytes
from sys.master_files mas
    left join @Drive drv on
        left(mas.physical_name, 1) = drv.DriveName
where database_id = db_id(@DatabaseName)

それに応じて設定@DatabaseNameします。

于 2011-11-01T05:44:56.427 に答える
1

SQL Server のバージョンについて言及していません。SQL Server 2005 以降では、sys.database_files から多くの情報を取得し、それを xp_fixeddrives の出力に関連付けることができます。

于 2010-02-11T08:39:29.030 に答える