• A bit of modifications to take care of schemas

    SET quoted_identifier ON

    GO

    CREATE PROCEDURE [dbo].[usp_find_row_lenght]

    (

    @schema_name VARCHAR(100)=''

    ,@table_name VARCHAR(100)=''

    )

    AS

    BEGIN

    SET nocount ON

    IF @table_name=''

    OR @schema_name=''

    BEGIN

    SELECT

    ss.name AS schema_name,

    o.name AS table_name,

    SUM(c.length) AS row_lenght

    FROM

    sysobjects o

    INNER JOIN syscolumns c

    ON o.id=c.id

    INNER JOIN sys.objects so

    ON o.id=so.object_id

    INNER JOIN sys.schemas ss

    ON so.schema_id=ss.schema_id

    WHERE (o.xtype='u')

    AND (o.type='u')

    GROUP BY

    o.name,

    ss.name

    ORDER BY

    ss.name,

    o.name

    END

    ELSE

    BEGIN

    SELECT

    ss.name AS schema_name,

    o.name AS table_name,

    SUM(c.length) AS row_lenght

    FROM

    sysobjects o

    INNER JOIN syscolumns c

    ON o.id=c.id

    INNER JOIN sys.objects so

    ON o.id=so.object_id

    INNER JOIN sys.schemas ss

    ON so.schema_id=ss.schema_id

    WHERE (o.xtype='u')

    AND (o.type='u')

    AND o.name=@table_name

    AND ss.name=@schema_name

    GROUP BY

    o.name,

    ss.name

    ORDER BY

    ss.name,

    o.name

    END

    END

    GO