Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zapytanie o liczbę rekordów w każdej tabeli w bazie danych

Jeśli używasz SQL Server 2005 lub nowszego, możesz również użyć tego:

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) 

Moim zdaniem jest łatwiejszy w obsłudze niż sp_msforeachtable wyjście.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Upuść wszystkie tabele, procedury składowane, wyzwalacze, ograniczenia i wszystkie zależności w jednej instrukcji sql

  2. Pomiń procedurę zapisaną w T-SQL

  3. Znajdź uszkodzone obiekty w SQL Server

  4. Tabela kalendarza dla hurtowni danych

  5. Czy istnieje sposób na osadzenie raportów i pulpitów nawigacyjnych Power Bi w aplikacji desktopowej vb.net lub C# z bazą danych sql Server 2008?