[SQL Server] Afficher le Total d'espace occupé par toutes les BD

DECLARE @Requete VARCHAR(1000)

DECLARE @BaseDonnees SYSNAME

CREATE TABLE #TailleFichierDonnees( EspaceUtilise_MB INT)

DECLARE CurseurBaseDonnees CURSOR FORWARD_ONLY STATIC FOR

   SELECT [name]

   FROM master..sysdatabases

WHERE DATABASEPROPERTYEX(name,'Status')='ONLINE'

OPEN CurseurBaseDonnees

FETCH NEXT FROM CurseurBaseDonnees INTO @BaseDonnees

WHILE @@FETCH_STATUS= 0

   BEGIN

       SELECT @Requete ='USE ['+ @BaseDonnees +']'+CHAR(13)+'INSERT INTO #TailleFichierDonnees( EspaceUtilise_MB )

select FILEPROPERTY([name], ''SpaceUsed'')/128

from sysfiles sf left outer join sysfilegroups sfg on sf.groupid=sfg.groupid

order by 1' +CHAR(13)

       Exec (@Requete)

       FETCH NEXT FROM CurseurBaseDonnees INTO @BaseDonnees

   END

CLOSE CurseurBaseDonnees

DEALLOCATE CurseurBaseDonnees

SELECT SUM(EspaceUtilise_MB)EspaceUtilise_MB FROM #TailleFichierDonnees

DROP TABLE #TailleFichierDonnees