Calculate database space used for all databases
DECLARE @DBInfo TABLEÂ
(
ServerName VARCHAR(100),Â
DatabaseName VARCHAR(100),Â
FileSizeMB INT,Â
LogicalFileName sysname,Â
PhysicalFileName NVARCHAR(520),Â
Status sysname,Â
Updateability sysname,Â
RecoveryMode sysname,Â
FreeSpaceMB INT,Â
FreeSpacePct VARCHAR(7),Â
FreeSpacePages INT,Â
PollDate datetime
)
Â
DECLARE @command VARCHAR(5000)
Â
SELECT @command = ‘Use [‘ + ‘?’ + ‘] SELECT @@servername as ServerName, ‘ + ”” + ‘?’ + ”” + ‘ AS DatabaseName, CAST(sysfiles.size/128.0 AS int) AS FileSize, sysfiles.name AS LogicalFileName, sysfiles.filename AS PhysicalFileName, CONVERT(sysname,DatabasePropertyEx(”?”,”Status”)) AS Status, CONVERT(sysname,DatabasePropertyEx(”?”,”Updateability”)) AS Updateability, CONVERT(sysname,DatabasePropertyEx(”?”,”Recovery”)) AS RecoveryMode, CAST(sysfiles.size/128.0 – CAST(FILEPROPERTY(sysfiles.name, ‘ + ”” + ‘SpaceUsed’ + ”” + ‘ ) AS int)/128.0 AS int) AS FreeSpaceMB, CAST(100 * (CAST (((sysfiles.size/128.0 -CAST(FILEPROPERTY(sysfiles.name,’ + ”” + ‘SpaceUsed’ + ”” + ‘ ) AS int)/128.0)/(sysfiles.size/128.0)) AS decimal(4,2))) AS varchar(8)) + ‘ + ”” + ‘%’ + ”” + ‘ AS FreeSpacePct, GETDATE() as PollDate FROM dbo.sysfiles’
INSERT INTO @DBInfoÂ
(ServerName, DatabaseName, FileSizeMB, LogicalFileName, PhysicalFileName, Status, Updateability, RecoveryMode, FreeSpaceMB, FreeSpacePct, PollDate)
EXEC sp_MSForEachDB @commandÂ
SELECT ServerName, DatabaseName, FileSizeMB, LogicalFileName, PhysicalFileName, Status, Updateability, RecoveryMode, FreeSpaceMB, FreeSpacePct, PollDateÂ
FROM @DBInfoÂ
ORDER BY ServerName, DatabaseName
===========================================
Discussion ¬