Script 1 :
USE [DBNAME]
GO
sp_spaceused
Script 2 :
USE [DBNAME] -- FOR SINGLE DATABASE
GO
SELECT DB_NAME() as DatabaseName,
CAST(sysfiles.size/128.0 AS int) AS FileSizeMB,
sysfiles.name AS LogicalFileName,
CAST(sysfiles.size/128.0 - CAST(FILEPROPERTY(sysfiles.name,
'SpaceUsed') AS int)/128.0 AS int) AS FreeSpaceMB,
CAST(100 * (CAST (((sysfiles.size/128.0 -CAST(FILEPROPERTY(sysfiles.name, 'SpaceUsed' ) AS int)/128.0)/(sysfiles.size/128.0))
AS decimal(4,2))) AS varchar(8)) + '%' AS FreeSpacePct,
sysfiles.filename AS PhysicalFileName,
CONVERT(sysname,DatabasePropertyEx('?','Status')) AS Status,
CONVERT(sysname,DatabasePropertyEx('?','Updateability')) AS Updateability,
CONVERT(sysname,DatabasePropertyEx('?','Recovery')) AS RecoveryMode,
GETDATE() as PollDate
FROM dbo.sysfiles
USE MASTER -- FOR ALL DATABASE
select db_name(dbid) as dbname,str(convert(dec(15),sum(size))* 8192/ 1048576,10,2)+ N' MB' as Size from sys.sysaltfiles
group by dbid order by Size desc
GO
Sample Result:
For More Information:
http://www.mssqltips.com/tip.asp?tip=1426