Sunday, January 19, 2020

Query to list number of records in each table in a database

Hi Friend,

Using the below query you can get all rows, indexName, etc you can change the query according to your need.

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) 

If you want only table name and records then go with the below query.
SELECT t.NAME TableName, i.ROWS Records
FROM sysobjects t, sysindexes i
WHERE t.xtype = 'U' and i.id = t.id and i.indid in (0,1)
order by TableName;

The result areas above.

Thank you for your valuable time keep in touch.

No comments:

Post a Comment