SELECT a.name,sum(a.length) as Bytes
FROM (
SELECT st.name, sc.length
FROM syscolumns sc inner join sysobjects st on sc.id = st.id and st.type = 'U'
UNION ALL
SELECT st.Name,sc.length
FROM sysindexes si
INNER JOIN sysobjects st ON si.id = st.id
and st.type = 'U'
INNER JOIN sysindexkeys sk ON si.indid = sk.indid
AND st.id = sk.id
inner join syscolumns sc on sk.colid = sc.colid
AND sc.id = st.id
) a
group by a.name
order by a.name