Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Заявка за изброяване на броя на записи във всяка таблица в база данни

Ако използвате SQL Server 2005 и по-нова версия, можете да използвате и това:

SELECT 
    t.NAME AS TableName,
    i.name as indexName,
    p.[Rows],
    sum(a.total_pages) as TotalPages, 
    sum(a.used_pages) as UsedPages, 
    sum(a.data_pages) as DataPages,
    (sum(a.total_pages) * 8) / 1024 as TotalSpaceMB, 
    (sum(a.used_pages) * 8) / 1024 as UsedSpaceMB, 
    (sum(a.data_pages) * 8) / 1024 as DataSpaceMB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
WHERE 
    t.NAME NOT LIKE 'dt%' AND
    i.OBJECT_ID > 255 AND   
    i.index_id <= 1
GROUP BY 
    t.NAME, i.object_id, i.index_id, i.name, p.[Rows]
ORDER BY 
    object_name(i.object_id) 

Според мен е по-лесно за работа от sp_msforeachtable изход.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да докирам/раздокарам заявката на Windows и други раздели в SQL Server Management Studio (SSMS) - SQL Server/TSQL Урок, част 21

  2. Как да изпълните SQL заявка без показване на резултати

  3. Достъпът е отказан при прикачване на база данни

  4. SQL:Изберете Топ 3 записа + Сума от количество

  5. Защо (и как) да разделяте колона с помощта на master..spt_values?