Вы можете использовать эту хранимую процедуру:
EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"
Это вернет набор результатов для каждой таблицы в базе данных (каждая из которых показывает имя и количество строк, наряду с другой информацией).
Вот как вы можете поместить их в переменную таблицы и упорядочить по количеству строк:
DECLARE @TBL TABLE (
[name] nvarchar(500),
[rows] bigint,
[reserved] nvarchar(500),
[data] nvarchar(500),
[index_size] nvarchar(500),
[unused] nvarchar(500)
)
INSERT INTO @TBL
EXEC sp_MSforeachtable @command1="EXEC sp_spaceused '?'"
SELECT * FROM @TBL
ORDER BY [rows] DESC