vrijdag 19 april 2013

Size and free space calculation for each DB


SELECT name
INTO #temp
FROM sys.databases where database_id > 4
DECLARE @SQL varchar(4000)
DECLARE @DB varchar(100)


DECLARE DBSIZE CURSOR
FOR (SELECT * from #temp)


OPEN DBSIZE

FETCH NEXT FROM DBSIZE
INTO @db

WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL =
'
USE ' + @db + '
INSERT INTO master..temp2
select
      name
    , filename
    , convert(decimal(12,2),round(a.size/128.000,2)) as FileSizeMB
    , convert(decimal(12,2),round(fileproperty(a.name,''SpaceUsed'')/128.000,2)) as SpaceUsedMB
    , convert(decimal(12,2),round((a.size-fileproperty(a.name,''SpaceUsed''))/128.000,2)) as FreeSpaceMB
from dbo.sysfiles a
'
EXEC (@SQL)

FETCH NEXT FROM DBSIZE INTO @db
END
CLOSE DBSIZE;
DEALLOCATE DBSIZE;



DROP TABLE #temp

Geen opmerkingen:

Een reactie posten