[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