Rick,
this should do:
DECLARE @tableInfo TABLE (
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
@tableInfo EXEC sp_msforeachtable 'sp_spaceused ''?'''
SELECT
t.table_name,
t.row_count 'Total Rows',
COUNT(*) as 'Total Columns',
CAST(REPLACE(t.data_size, ' KB', '') as integer) 'Data Size (Kb)'
FROM
@tableInfo t INNER JOIN information_schema.columns c ON t.table_name COLLATE database_default = c.table_name COLLATE database_default
GROUP BY
t.table_name,
t.row_count,
t.data_size
ORDER BY
CAST(REPLACE(t.data_size, ' KB', '') AS int) DESC
GO
I guess the largest one is EventLog, which you can easily truncate by
TRUNCATE TABLE {databaseOwner}{objectQualifier}ScheduleHistory
TRUNCATE TABLE {databaseOwner}{objectQualifier}Eventlog
TRUNCATE TABLE {databaseOwner}{objectQualifier}Sitelog
(see Geoff Barlow's answer in the Community Exchange)
Best wishes
Michael