Results 1 to 3 of 3

Thread: TSQL - list all tables and each table's size

  1. #1
    Join Date
    May 2005
    Posts
    111

    TSQL - list all tables and each table's size

    Query NOT an SP that lists all tables and their data size in a given database?

  2. #2
    Join Date
    Dec 2004
    Posts
    502
    Try this (the NULL table name is the result of the rollup, i.e., the totals for all the columns):

    SELECT
    X.[name],
    REPLACE(CONVERT(varchar, CONVERT(money, X.[rows]), 1), '.00', '') AS [rows],
    REPLACE(CONVERT(varchar, CONVERT(money, X.[reserved]), 1), '.00', '') AS [reserved],
    REPLACE(CONVERT(varchar, CONVERT(money, X.[data]), 1), '.00', '') AS [data],
    REPLACE(CONVERT(varchar, CONVERT(money, X.[index_size]), 1), '.00', '') AS [index_size],
    REPLACE(CONVERT(varchar, CONVERT(money, X.[unused]), 1), '.00', '') AS [unused]
    FROM
    (SELECT
    CAST(object_name(id) AS varchar(50)) AS [name],
    SUM(CASE WHEN indid < 2 THEN CONVERT(bigint, [rows]) END) AS [rows],
    SUM(CONVERT(bigint, reserved)) * 8 AS reserved,
    SUM(CONVERT(bigint, dpages)) * 8 AS data,
    SUM(CONVERT(bigint, used) - CONVERT(bigint, dpages)) * 8 AS index_size,
    SUM(CONVERT(bigint, reserved) - CONVERT(bigint, used)) * 8 AS unused
    FROM sysindexes WITH (NOLOCK)
    WHERE sysindexes.indid IN (0, 1, 255)
    AND sysindexes.id > 100
    AND object_name(sysindexes.id) <> 'dtproperties'
    GROUP BY sysindexes.id WITH ROLLUP) AS X
    ORDER BY X.[name]

  3. #3
    Join Date
    May 2005
    Posts
    111
    Thank you. -A

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •