• Try this and compare it to the task pad view in Enterprise Manager.

     

     SELECT AA.name, AA.filename, -- AA.dbSize,

      BB.name, BB.filename, --BB.dbSize,

      (AA.dbSize) * CC.low / 1048576 AS DBSize, -- This is the total database size.

      (AA.dbSize) * CC.low / 1048576 - AA.AvailableSpaceInMB AS DBUsedSpace,

      AA.AvailableSpaceInMB as DBAvailableSpaceInMB,

      (BB.dbSize) * CC.low / 1048576 AS LogSize,

      (BB.dbSize) * CC.low / 1048576 - BB.AvailableSpaceInMB AS LogUsedSpace,

      BB.AvailableSpaceInMB as LogAvailableSpaceInMB,

      (AA.dbSize + BB.dbSize) * CC.low / 1048576 AS TotalSize,

      AA.AvailableSpaceInMB + BB.AvailableSpaceInMB as TotalAvailableSpaceInMB

     FROM

     (select name, filename, convert(dec(15),size) as dbSize,

      size/128.0 -CAST(FILEPROPERTY(name, 'SpaceUsed' )AS int)/128.0 AS AvailableSpaceInMB

      from dbo.sysfiles

      where (status & 64 = 0)) AA CROSS JOIN

     (select name, filename, convert(dec(15),size) as dbSize,

      size/128.0 -CAST(FILEPROPERTY(name, 'SpaceUsed' )AS int)/128.0 AS AvailableSpaceInMB

      from dbo.sysfiles

      where (status & 64 <> 0)) BB CROSS JOIN

     (select low

      from master.dbo.spt_values

      where number = 1

       and type = 'E') CC