CREATE Procedure CheckDBSize
As
Begin
Create Table #TableSpace
(
name Varchar(100),
rows Varchar(100),
reserved Varchar(100),
data Varchar(100),
index_size Varchar(100),
unused Varchar(100),
)
Declare @TableName Varchar(100)
Declare @Query Varchar(Max)
DECLARE Table_cursor CURSOR FOR
Select Name
From sys.tables
Order by Name
OPEN Table_cursor
FETCH NEXT FROM Table_cursor INTO @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
Begin Try
Set @Query = 'Insert Into #TableSpace EXEC sp_spaceused [' + @TableName + ']'
Exec(@Query)
End Try
Begin Catch
Print @TableName
End Catch
FETCH NEXT FROM Table_cursor INTO @TableName
END
CLOSE Table_cursor;
DEALLOCATE Table_cursor;
Select name ,
rows ,
reserved,
data ,
index_size ,
unused,
Cast(((Cast(Replace(data,' KB','') as Numeric(10,0)) / 1024)/ 1024) as Numeric(10,2)) as GB
From #TableSpace
Order by Cast(Replace(data,' KB','') as Numeric(10,0)) Desc
End
Check All Tables Size in Database
< 1 min read