• Guys-

    Try this out

     

    BEGIN

     SET NOCOUNT ON

     IF EXISTS (SELECT 1 FROM Tempdb..Sysobjects WHERE [Id] = OBJECT_ID('Tempdb..#DataFileStats'))

     BEGIN

      DROP TABLE #DataFileStats

     END

     IF EXISTS (SELECT 1 FROM Tempdb..Sysobjects WHERE [Id] = OBJECT_ID('Tempdb..#LogSizeStats'))

     BEGIN

      DROP TABLE #LogSizeStats

     END

     CREATE TABLE #DataFileStats

      (DBName  VARCHAR(255),

      DBId  INT,

      Flag   BIT DEFAULT 0,

      Fileid   TINYINT,

      [FileGroup]  TINYINT,

      TotalExtents  DEC(15,2),

      UsedExtents  DEC(15,2),

      [Name]   SYSNAME,

      [FileName]  SYSNAME)

     CREATE TABLE #LogSizeStats

      (DBName  VARCHAR(255) NOT NULL PRIMARY KEY CLUSTERED,

      DBId  INT,

      LogFile  DEC(15,2),

      LogFileUsed DEC(15,2),

      Status  BIT)

     INSERT INTO #LogSizeStats (DBName,LogFile,LogFileUsed,Status)

     EXEC ('DBCC SQLPERF(LOGSPACE) WITH NO_INFOMSGS')

     UPDATE #LogSizeStats

     SET  DBId   = DB_ID(DBName),

      LogFileUsed  = LogFile*LogFileUsed/100.0

     DECLARE @tblSysFiles TABLE

      (DBId  INT,

      FileId  INT,

      GroupId  INT,

      FileNamePath VARCHAR(400),

      LogiFileName VARCHAR(60),

      FileSize DEC(15,2),

      FileSizeMax DEC(15,2),

      FileSizeGrowth DEC(15,2),

      GrowthType VARCHAR(15),

      Status  INT)

     INSERT INTO @tblSysFiles

      (FileSize,

      FileSizeMax,

      FileSizeGrowth,

      GrowthType,

      Status,

      LogiFileName,

      FileNamePath,

      DBId,

      FileId,

      GroupId)

     SELECT CAST([Size]*8/1024.0 AS DEC(15,2)) AS Size_MB,

      CAST([MaxSize]*8/1024 AS DEC(15,2)) AS MaxSize_MB,

      CASE

       WHEN CAST([Growth]*8/1024 AS DEC(15,2)) = 0.0 THEN CAST(CAST([Size]*8/1024.0 AS DEC(15,2))*10/100.00 AS DEC(15,2))

       ELSE CAST([Growth]*8/1024 AS DEC(15,2))

      END AS Growth,

      CASE

       WHEN CAST([Growth]*8/1024 AS DEC(15,2)) = 0.0 THEN 'MB (%Basis)'

       ELSE 'MB'

      END AS GrowthType,

      Status,

      RTRIM([Name]) AS LogicalFileName,

      RTRIM([FileName]) AS FileNamePath,

      DBId,

      FileId,

      GroupId

     FROM Master..SysAltFiles

     ORDER BY DBId,FileId,GroupId

     DECLARE @SQLString  SYSNAME

     DECLARE @MinId  INT

     DECLARE @MaxId  INT

     DECLARE @DBName  VARCHAR(255)

     DECLARE @tblDBName TABLE

      (RowId  INT IDENTITY(1,1),

      DBName  VARCHAR(255),

      DBId  INT)

     INSERT INTO @tblDBName (DBName,DBId)

     SELECT [Name],DBId FROM Master..SysDataBases WHERE (Status & 512) = 0 /*NOT IN (536,528,540,2584,1536,512,4194841)*/ ORDER BY [Name]

     SELECT @MinId = MIN(RowId),

      @MaxId = MAX(RowId)

     FROM @tblDBName

     WHILE (@MinId <= @MaxId)

     BEGIN

      SELECT @DBName = [DBName]

      FROM @tblDBName

      WHERE RowId = @MinId

      SELECT @SQLString = 'USE ' + @DBName + ' DBCC SHOWFILESTATS WITH NO_INFOMSGS'

       

      INSERT INTO #DataFileStats (Fileid, [FileGroup] , TotalExtents , UsedExtents , [Name] , [FileName])

      EXEC (@SQLString)

      UPDATE #DataFileStats

      SET DBName  = RTRIM(@DBName),

       DBId = DB_ID(@DBName)

      WHERE DBName IS NULL 

      SELECT @MinId = @MInId + 1

     END

     UPDATE #DataFileStats

     SET TotalExtents  = TotalExtents*8*8192.0/1048576.0,

      UsedExtents = UsedExtents*8*8192.0/1048576.0  

     SELECT A.DbId,

      A.FileId,

      A.GroupId,

      A.FileNamePath AS PhysicalFileName,

      A.FileSize AS ActSize_MB,

      A.FileUsed AS Used_MB,

      CAST((A.FileSize - A.FileUsed) AS DEC(15,2)) AS UnUsed_MB,

      CASE WHEN A.FileSize <> 0 THEN CAST((100-(A.FileUsed / A.FileSize)*100) AS DEC(15,2)) ELSE 0 END AS [%UnUsed],

      A.FileSizeMax AS [MaxSize_MB],

      CASE WHEN A.FileSizeMax <> 0.00 THEN 'Restricted' ELSE 'Un-Restricted' END AS Growth,

      A.FileSizeGrowth AS SizeGrowth,

      A.GrowthType,

      A.LogiFileName AS LogicalFileName

     FROM (

      SELECT A.DbId,

       A.FileId,

       A.GroupId,

       A.FileNamePath,

       A.LogiFileName,

       A.FileSize,

       Data.UsedExtents AS FileUsed,

       A.FileSizeMax,

       A.FileSizeGrowth,

       A.GrowthType

      FROM @tblSysFiles AS A

       LEFT JOIN #DataFileStats AS Data

        ON A.DBId = Data.DBId

        AND A.FileId = Data.FileId

        AND  A.GroupId = Data.FileGroup

      WHERE A.GroupId <> 0

      UNION

      SELECT A.DbId,

       A.FileId,

       A.GroupId,

       A.FileNamePath,

       A.LogiFileName,

       A.FileSize,

       Data.LogFileUsed AS FileUsed,

       A.FileSizeMax,

       A.FileSizeGrowth,

       A.GrowthType

      FROM @tblSysFiles AS A

       LEFT JOIN #LogSizeStats AS Data

        ON A.DBId = Data.DBId

      WHERE A.GroupId = 0

     &nbsp AS A

     ORDER BY DB_NAME(DBId),FileId,GroupId

    END

    Just do a filter on the DBs you are looking for

     

    Regards

    Ram Ramamoorthy