Get SQL Server Database Files Sizes

If you want to check how big are your databases on some SQL Server you need to query  [sys].[master_files]. Better results you will get with the following query:

SELECT CASE GROUPING(d.[name])
WHEN 1 THEN 'All'
ELSE d.[name]
END AS [DatabaseName],
CASE GROUPING(f.[name])
WHEN 1 THEN 'Total'
else f.[name]
END AS [FileName],
ROUND(SUM(f.[size]) * 8 / 1024, 0) SizeInMBs
FROM [sys].[master_files] f
INNER JOIN [sys].[databases] d ON d.[database_id] = f.[database_id]
GROUP BY [d].[name], f.[name] WITH ROLLUP
ORDER BY d.[name]