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