Ответ 1
SELECT
[TableName] = so.name,
[RowCount] = MAX(si.rows)
FROM
sysobjects so,
sysindexes si
WHERE
so.xtype = 'U'
AND
si.id = OBJECT_ID(so.name)
GROUP BY
so.name
ORDER BY
2 DESC
Я использую SQL Server 2005 и хочу знать, как я могу получить список всех таблиц с количеством записей в каждом.
Я знаю, что могу получить список таблиц, используя представление sys.tables
, но я не могу найти счет.
Спасибо
SELECT
[TableName] = so.name,
[RowCount] = MAX(si.rows)
FROM
sysobjects so,
sysindexes si
WHERE
so.xtype = 'U'
AND
si.id = OBJECT_ID(so.name)
GROUP BY
so.name
ORDER BY
2 DESC
Для того, что стоит, системная таблица 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
Я могу добавить, что sysindexes.rows - это приближение количества строк. Я бы использовал DBCC UPDATEUSAGE
, если вам нужно более точное значение. У нас была эта проблема в БД с таблицами, содержащими более 47-50 миллионов строк, и мы думали, что потеряли около полумиллиона от каждого из них.
Возможно, что-то вроде этого:
SELECT
[TableName] = so.name,
[RowCount] = MAX(si.rows)
FROM
sysobjects so,
sysindexes si
WHERE
so.xtype = 'U'
AND
si.id = OBJECT_ID(so.name)
GROUP BY
so.name
ORDER BY
2 DESC
Это мой метод:
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
работает как шарм
Все эти способы дадут вам количество строк в результирующем наборе запроса выбора. SSMS также дает вам возможность увидеть детали объекта через: панель "Объект обозревателя объектов" . Это доступно для 2005 года и всех версий после этого
Сведения обозревателя объектов - это компонент SQL Server Management Studio. Он предоставляет табличное представление обо всех объектах на сервере и представляет собой пользовательский интерфейс для управления ими.
Чтобы попасть в "Окно сведений об объекте": Нажмите "Объект", который вы хотите увидеть в разделе "Проводник объектов", и нажмите F7. Подробнее: https://technet.microsoft.com/en-us/library/ms191146(v=sql.90).aspx
Плюсы:
Примечание. Возможно, вы не указали граф строк в панели "Сведения об объекте" по умолчанию, вы можете щелкнуть по заголовку столбца и принести его.