How to determine the size of my tables in the SQL Server database
If you don't want to write a script, you can also open the much underused 'Object Explorer Details' in SSMS (Shortcut key F7).
From the Top-Level, open the Tables folder to get a list of all the tables in your database.
You may need to customise the columns to see the Space Used. This can be done by right clicking on the header row and choosing the columns you wish to display.
There's plenty more data like this available in Object Explorer Details.
For single table you can use
sp_spaceused MyTable
For all tables in a database you can use it with sp_msforeachtable
as follwoing
CREATE TABLE #temp (
table_name sysname ,
row_count INT,
reserved_size VARCHAR(50),
data_size VARCHAR(50),
index_size VARCHAR(50),
unused_size VARCHAR(50))
SET NOCOUNT ON
INSERT #temp
EXEC sp_msforeachtable 'sp_spaceused ''?'''
SELECT a.table_name,
a.row_count,
COUNT(*) AS col_count,
a.data_size
FROM #temp a
INNER JOIN information_schema.columns b
ON a.table_name collate database_default
= b.table_name collate database_default
GROUP BY a.table_name, a.row_count, a.data_size
ORDER BY CAST(REPLACE(a.data_size, ' KB', '') AS integer) DESC
DROP TABLE #temp
In SSMS right click on Database, select Reports, Standard Reports, Disk Usage by Top Tables.
The report will give you number of rows and kilobytes used per table.