En este artículo presento consultas SQL para obtener la cantidad de registros de una base de datos MSSQL y MySQL.
MSSQL
Para contar la cantidad de registros de cada tabla de una determinada base de datos Microsoft SQL Server se debe ejecutar la siguiente consulta:
SELECT QUOTENAME(SCHEMA_NAME(sOBJ.schema_id)) + '.' + QUOTENAME(sOBJ.name) AS [TableName] , SUM(sPTN.Rows) AS [RowCount] FROM sys.objects AS sOBJ INNER JOIN sys.partitions AS sPTN ON sOBJ.object_id = sPTN.object_id WHERE sOBJ.type = 'U' AND sOBJ.is_ms_shipped = 0x0 AND index_id < 2 -- 0:Heap, 1:Clustered GROUP BY sOBJ.schema_id , sOBJ.name ORDER BY [TableName] GO
Esta consulta básicamente hace un join de las tablas 'sys.objects' y 'sys.partitions' (filtrando sólo los objetos que son tablas con type = 'U'). De la tabla 'sys.objects' selecciona la columna 'name' que contiene el nombre del objeto (en este caso el nombre de la tabla) y de la tabla 'sys.partitions' selecciona la columna 'Rows' que contiene la cantidad de registros de la tabla.
MySQL
Para obtener la cantidad de registros de cada tabla de la base de datos 'x' en MySQL se debe ejecutar:
select table_name,table_rows from information_schema.tables where table_schema='x';
Por ejemplo, éste es el resultado si se ejecuta la consulta en una base de datos de un sistema Joomla!:
mysql> select table_name,table_rows from information_schema.tables where table_schema='joomladb'; +-------------------------+------------+ | table_name | table_rows | +-------------------------+------------+ | banner | 8 | | bannerclient | 1 | | bannertrack | 0 | | categories | 23 | | components | 45 | | contact_details | 1 | | content | 51 | | content_frontpage | 8 | | content_rating | 0 | | core_acl_aro | 1 | | core_acl_aro_groups | 11 | | core_acl_aro_map | 0 | | core_acl_aro_sections | 1 | | core_acl_groups_aro_map | 1 | | core_log_items | 0 | | core_log_searches | 0 | | dbcache | 0 | | groups | 3 | | jf_content | 20 | | jf_tableinfo | 14 | | languages | 3 | | menu | 41 | | menu_types | 6 | | messages | 0 | | messages_cfg | 0 | | migration_backlinks | 0 | | modules | 45 | | modules_menu | 27 | | newsfeeds | 14 | | plugins | 43 | | poll_data | 12 | | poll_date | 11 | | poll_menu | 0 | | polls | 1 | | sections | 4 | | session | 1 | | stats_agents | 0 | | templates_menu | 2 | | users | 1 | | weblinks | 6 | +-------------------------+------------+ 40 rows in set (0.07 sec)