Does this seemingly simpler, and far faster, method produce accurate results?
SELECT name [Table], sum(row_count) AS [Rows]
FROM sys.dm_db_partition_stats WITH (NOLOCK), sysobjects WITH (NOLOCK)
WHERE index_id < 2-- Just grab index 0 (heap) or 1 (cluster)
AND xtype = 'U'
AND object_id = object_id('' + name + '')
GROUP BY name