En SQL Server es muy común querer saber cuanto de espacio disponible tiene una base de datos. Debido a que el dimensionamiento depende de varios ficheros, la sentencia a continuación es una forma rápida de ver cuanto espacio libre hay en cada grupo de ficheros de una base de datos:
SELECT b.groupname AS 'File Group', Name, [Filename],
CONVERT (Decimal(15,2),ROUND(a.Size/128.000,2)) AS [Currently Allocated Space (MB)], CONVERT (Decimal(15,2), ROUND(FILEPROPERTY(a.Name,'SpaceUsed')/128.000,2)) AS [Space Used (MB)], CONVERT (Decimal(15,2), ROUND((a.Size-FILEPROPERTY(a.Name,'SpaceUsed'))/128.000,2)) AS [Available Space (MB)] FROM dbo.sysfiles a (NOLOCK) JOIN sysfilegroups b (NOLOCK)
ON a.groupid = b.groupid ORDER BY b.groupname
Espero que os sea de utilidad.