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
  AS A
ORDER BY DB_NAME(DBId),FileId,GroupId
END
Just do a filter on the DBs you are looking for
Regards
Ram Ramamoorthy