Sometimes it might be difficult for find size of all tables since it involves calling sp_spaceused stored procedure against each table. This is still worse when the number of tables are huge. The attached script lists all tables with number of rows, reserved, actual data size, index size and unused space in a database.