Table Row Counts - SQL Server

The following SQL view will return a record for every table in the database, indicating its name and row count. Depending on the number of rows in the tables this method can be much faster than the select count(1) from TableName method, because it is a simple lookup in a set of system tables.

SQL Server 2005

    OBJECT: TableRowCounts view
create view dbo.TableRowCounts
     SchemaName =
    ,TableName  =
    ,RowQty     = sum(p.rows)  
    sys.objects o 

    inner join sys.schemas s
        on o.schema_id = s.schema_id

    inner join sys.partitions p 
        on p.object_id = o.object_id
        and o.type = 'U'

    LEFT JOIN  sys.allocation_units a 
        ON p.partition_id = a.container_id 

    -- 0 = heap table, 1 = table with clustered index
    and p.index_id in (0, 1) 

    and a.type = 1 -- row-data only , not LOB
    and p.rows is not null

group by,

See Also

Database Size