Como saber el número de filas de todas las tablas SQL Server


Para saber el número de filas de una tabla se usa lo siguiente:

select count(*) from tutabla

Ahora, si deseamos saber el número de filas de todas las tablas de una base de datos, podemos usar el siguiente procedimiento almacenado creado:


CREATE PROCEDURE dbo.listTableRowCounts 
AS 
BEGIN 
    SET NOCOUNT ON 

    DECLARE @SQL VARCHAR(255) 
    SET @SQL = 'DBCC UPDATEUSAGE (' + DB_NAME() + ')' 
    EXEC(@SQL) 

    CREATE TABLE #foo 
    ( 
        tablename VARCHAR(255), 
        rc INT 
    ) 
     
    INSERT #foo 
        EXEC sp_msForEachTable 
            'SELECT PARSENAME(''?'', 1), 
            COUNT(*) FROM ?' 

    SELECT tablename, rc 
        FROM #foo 
        ORDER BY rc DESC 

    --DROP TABLE #foo 
END


El código mostrado hace un select count en cada tabla usando el procedimiento sp_msForeachTable.
Para ejecutar el procedimiento almacenado use la siguiente sentencia:


exec dbo.listTableRowCounts 




Fuente
http://sqlserver2000.databases.aspfaq.com/how-do-i-get-a-list-of-sql-server-tables-and-their-row-counts.html

Comentarios

  1. Tengo una pregunta para saber el numero total de procedimientos almacenados ?????

    ResponderEliminar
  2. En la vista sys.objects buscar los objetos cuyo tipo sea procedure.

    Sería algo así como select count(*) from sys.objects where type='p'

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

The Deep Sea: una web interactiva para explorar las profundidades el mar y descubrir las extrañas criaturas que viven en él

Detectar el usuario de Windows utilizando C#

Lo nuevo de SQL Server 2008 respecto a SQL Server 2005