Это простой пример показывает, как можно в SQL Server получить количество строк данных, находящихся в каждой таблице БД. Список таблиц получается из information_schema.tables, на основе которого формирует динамичный запрос, который и выводит количество строк данных каждой найденной таблицы.
-- создаем таблицу в памяти, в ней будут храниться исключения
DECLARE @tbl TABLE (checked nvarchar(255));
-- переменная для хранения динамичного sql-запроса
DECLARE @q nvarchar(max);
SET @q = ''; -- сразу ставим пустую строку, чтобы можно было без проблем выполнять конкатенацию
-- берем первую таблицу
DECLARE @table nvarchar(255);
SELECT TOP 1 @table = TABLE_NAME FROM information_schema.tables
-- цикл будет работать, пока в последнем запросе есть какие-то данные
WHILE @@ROWCOUNT > 0 BEGIN
-- формируем запрос на получение количества данных в текущей таблице
IF @q <> '' SET @q = @q + ', ';
SET @q = @q + '(SELECT COUNT(*) FROM ' + @table + ') AS [' + @table + ']';
-- добавляем таблицу в исключения, чтобы не проверять ее повторно
INSERT INTO @tbl
SELECT @table;
-- берем следующую таблицу, игнорируя таблицы в списке исключений
SELECT TOP 1 @table = TABLE_NAME FROM information_schema.tables
WHERE TABLE_NAME NOT IN (SELECT checked FROM @tbl);
END;
SET @q = 'SELECT ' + @q;
--print @q; -- debug
exec(@q);