Подсчет строк для всех таблиц сразу

Я использую SQL Server 2005 и хочу знать, как я могу получить список всех таблиц с количеством записей в каждом.

Я знаю, что могу получить список таблиц, используя представление sys.tables, но я не могу найти счет.

Спасибо

Ответы

Ответ 2

Для того, что стоит, системная таблица sysindexes устарела в SQL 2008. Это все еще работает, но вот запрос, который работает в будущем с системными представлениями SQL 2008.

select
schema_name(obj.schema_id) + '.' + obj.name,
row_count
from (
    select
        object_id,
        row_count = sum(row_count)
    from sys.dm_db_partition_stats
    where index_id < 2  -- heap or clustered index
    group by object_id
) Q
join sys.tables obj on obj.object_id = Q.object_id

Ответ 3

Я могу добавить, что sysindexes.rows - это приближение количества строк. Я бы использовал DBCC UPDATEUSAGE, если вам нужно более точное значение. У нас была эта проблема в БД с таблицами, содержащими более 47-50 миллионов строк, и мы думали, что потеряли около полумиллиона от каждого из них.

Ответ 5

Это мой метод:

create table #rowcount (tablename varchar(128), rowcnt int)
exec sp_MSforeachtable 
   'insert into #rowcount select ''?'', count(*) from ?'
select * from #rowcount
    order by tablename
drop table #rowcount

работает как шарм

Ответ 6

Все эти способы дадут вам количество строк в результирующем наборе запроса выбора. SSMS также дает вам возможность увидеть детали объекта через: панель "Объект обозревателя объектов" . Это доступно для 2005 года и всех версий после этого

Сведения обозревателя объектов - это компонент SQL Server Management Studio. Он предоставляет табличное представление обо всех объектах на сервере и представляет собой пользовательский интерфейс для управления ими.

Чтобы попасть в "Окно сведений об объекте": Нажмите "Объект", который вы хотите увидеть в разделе "Проводник объектов", и нажмите F7. Подробнее: https://technet.microsoft.com/en-us/library/ms191146(v=sql.90).aspx

Плюсы:

  • Гораздо быстрее, чем запрос выбора, поскольку SQL Server сохраняет эту информацию
  • Не нужно писать/копировать-вставлять запрос выбора каждый раз - вы всего на один F7 прочь
  • Дает вам гораздо больше информации, а не только о количестве строк

Примечание. Возможно, вы не указали граф строк в панели "Сведения об объекте" по умолчанию, вы можете щелкнуть по заголовку столбца и принести его.