The following SQL query returns the size of each table in the specified database.
USE <db_name>
sp_MSforeachtable @command1='EXEC sp_spaceused ''?''',@whereand='or OBJECTPROPERTY(o.id, N''IsSystemTable'') = 1'
Here's how it works. SQL Server's system stored procedure sp_MSforeachtable lets you execute code against every table without having to write cursors or while loops. The procedure enumerates through each table in a database and executes a command that you specify as a parameter.
I found this code very useful for estimating the size and growth of a database over time. The query works in all modern versions of SQL Server (i.e., 2000/2005/2008).
If you have a hot tip and we publish it, we'll pay you. However, due to accounting overhead we no longer pay $10 for a single tip submission. You must accumulate 10 acceptable tips to receive payment. Be sure to include a clear explanation of what the technique does and why it's useful. If it includes code, limit it to 20 lines if possible.
Submit your tip here.