Listing information about all database files in SQL Server

后端 未结 13 2231
遥遥无期
遥遥无期 2021-02-01 00:08

Is it possible to list information about the files (MDF/LDF) of all databases on an SQL Server?

I\'d like to get a list showing which database is using what files on th

13条回答
  •  灰色年华
    2021-02-01 00:44

    I am using script to get empty space in each file:

    Create Table ##temp
    (
        DatabaseName sysname,
        Name sysname,
        physical_name nvarchar(500),
        size decimal (18,2),
        FreeSpace decimal (18,2)
    )   
    Exec sp_msforeachdb '
    Use [?];
    Insert Into ##temp (DatabaseName, Name, physical_name, Size, FreeSpace)
        Select DB_NAME() AS [DatabaseName], Name,  physical_name,
        Cast(Cast(Round(cast(size as decimal) * 8.0/1024.0,2) as decimal(18,2)) as nvarchar) Size,
        Cast(Cast(Round(cast(size as decimal) * 8.0/1024.0,2) as decimal(18,2)) -
            Cast(FILEPROPERTY(name, ''SpaceUsed'') * 8.0/1024.0 as decimal(18,2)) as nvarchar) As FreeSpace
        From sys.database_files
    '
    Select * From ##temp
    drop table ##temp
    

    Size is expressed in KB.

提交回复
热议问题