Interesante el stored procedure que encontré en 4guysfromrolla.com, con el podemos saber que espacio están usando las tablas de nuestra base de datos en SQL Server 2000.

Con el stored procedure sp_spaceused podemos determinar que espacio usa nuestra base de datos completa y tambien un objeto determinado como por ejemplo una tabla.

Ejemplos de uso:

EXEC sp_spaceused
Lo que devuelve este stored es lo siguiente:
reserved           data               index_size         unused
------------------ ------------------ ------------------ ------------------
274880 KB          216248 KB          47912 KB           10720 KB

Con sp_spaceused tambien podemos saber el tamaño que usa una tabla ej: sp_spaceused ‘mitabla’
Para saber el tamaño de todas las tablas es necesario correr un stored procedure, el siguiente:

CREATE PROCEDURE dbo.TableSpaceUsed
AS

-- Create the temporary table...
CREATE TABLE #tblResults
(
[name]   nvarchar(20),
[rows]   int,
[reserved]   varchar(18),
[reserved_int]   int default(0),
[data]   varchar(18),
[data_int]   int default(0),
[index_size]   varchar(18),
[index_size_int]   int default(0),
[unused]   varchar(18),
[unused_int]   int default(0)
)

-- Populate the temp table...
EXEC sp_MSforeachtable @command1=
"INSERT INTO #tblResults
([name],[rows],[reserved],[data],[index_size],[unused])
EXEC sp_spaceused '?'"

-- Strip out the " KB" portion from the fields
UPDATE #tblResults SET
[reserved_int] = CAST(SUBSTRING([reserved], 1,
CHARINDEX(' ', [reserved])) AS int),
[data_int] = CAST(SUBSTRING([data], 1,
CHARINDEX(' ', [data])) AS int),
[index_size_int] = CAST(SUBSTRING([index_size], 1,
CHARINDEX(' ', [index_size])) AS int),
[unused_int] = CAST(SUBSTRING([unused], 1,
CHARINDEX(' ', [unused])) AS int)

-- Return the results...
SELECT * FROM #tblResults

Usa este stored y podrás tener un mejor control del tamaño de tu base de datos.