Voici un bon script que j'ai arraché sans vergogne d' ici :
use [Insert DB Name]
select
a.FILEID,
[FILE_SIZE_MB] =
convert(decimal(12,2),round(a.size/128.000,2)),
[SPACE_USED_MB] =
convert(decimal(12,2),round(fileproperty(a.name, 'SpaceUsed')/128.000,2)),
[FREE_SPACE_MB] =
convert(decimal(12,2),round((a.size-fileproperty(a.name, 'SpaceUsed'))/128.000,2)) ,
NAME = left(a.NAME,15),
FILENAME = left(a.FILENAME,30)
from
dbo.sysfiles a
C'est bien car cela vous donnera l'espace libre dans chaque fichier DB (vous pouvez avoir plusieurs fichiers et peut-être que quelqu'un l'a configuré pour mettre des objets dans chacun) ainsi que la taille libre.
Par exemple, vous disposez d'un fichier de données de 4 Go qui dispose de 3 Go d'espace libre. Peut-être que vous avez 1 MDF sans beaucoup de données mais un NDF avec beaucoup de données. Cette requête vous indiquera la taille libre dans chaque fichier et à quelle DB ce fichier est alloué. N'oubliez pas d'ajouter tous les «SPACE_USED_MB» pour chaque base de données pour obtenir la taille totale.
Bonne chance!
Edit:
Suppression d'une commande non prise en charge et boguée que je pensais pouvoir obtenir en publiant ici pour cette requête. :(