Microsoft SQL Server Database Systems

09 Feb 2016, 10:59

DDL Query to Provide Statistics about All Tables Rows Count

Untitled

In order to Quickly Compare 2 Databases after Transfering Specific or all Tables, the best way to check for Rows Count after the transfer.

 

The Below Query provides Very Good Result from any Database, Containing listing of all Tables + Primary Index + Rows Count + Data on Size and Data Pages Count

 

If you are suspecting that your database is going to corruption, this script can help you identify whether you have a problem or not, usually Corrupted or Damaged Tables cannot retrieve Row Count on itself.


SELECT

    t.NAME AS TableName,

    i.name as indexName,

    p.[Rows],

    sum(a.total_pages) as TotalPages,

    sum(a.used_pages) as UsedPages,

    sum(a.data_pages) as DataPages,

    (sum(a.total_pages) * 8) / 1024 as TotalSpaceMB,

    (sum(a.used_pages) * 8) / 1024 as UsedSpaceMB,

    (sum(a.data_pages) * 8) / 1024 as DataSpaceMB

FROM

    sys.tables t

INNER JOIN     

    sys.indexes i ON t.OBJECT_ID = i.object_id

INNER JOIN

    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id

INNER JOIN

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

WHERE

    t.NAME NOT LIKE 'dt%' AND

    i.OBJECT_ID > 255 AND 

    i.index_id <= 1

GROUP BY

    t.NAME, i.object_id, i.index_id, i.name, p.[Rows]

ORDER BY

    object_name(i.object_id)

 

Result of Script as Following , Super Great. Yea :)