Script that provides the row counts and table names

后端 未结 7 1858
旧巷少年郎
旧巷少年郎 2021-02-05 10:24

Maybe you easily said how to I provide table names and row counts?

Pseudo SQL:

for \"select tablename from system.Tables\" into :tablename
  execute \"se         


        
7条回答
  •  不思量自难忘°
    2021-02-05 10:55

    If you're on SQL Server 2005 or newer (you unfortunately didn't specify which version of SQL Server you're using), this query should give you that information:

    SELECT 
        TableName = t.NAME,
        TableSchema = s.Name,
        RowCounts = p.rows
    FROM 
        sys.tables t
    INNER JOIN 
        sys.schemas s ON t.schema_id = s.schema_id
    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
    WHERE 
        t.is_ms_shipped = 0
    GROUP BY
        t.NAME, s.Name, p.Rows
    ORDER BY 
        s.Name, t.Name
    

    This produces an output something like (this is from AdventureWorks):

    TableName       TableSchema      RowCounts
    AWBuildVersion    dbo                  1
    DatabaseLog       dbo               1597
    ErrorLog          dbo                  0
    Department        HumanResources      16
    Employee          HumanResources     290
    JobCandidate      HumanResources      13
    Address           Person           19614
    AddressType       Person               6
    ... and so on......
    

提交回复
热议问题