如何获取有行的表列表?

时间:2014-05-17 04:50:49

标签: sql sql-server

如何获取数据库中包含行的表的列表。

Select  A.Name
    From    Sys.Tables A
            -- Inner Join with ?
    -- Or What conditions ?

有可能吗?

请指导我! 谢谢。

3 个答案:

答案 0 :(得分:1)

此查询将有所帮助。

SELECT obj.name TableName, st.row_count
            FROM sys.dm_db_partition_stats(nolock) st
            inner join sys.objects(nolock) obj on st.object_id = obj.object_id
    WHERE index_id < 2 and st.row_count > 1 and obj.type = 'u'

编辑仅显示用户表。

答案 1 :(得分:0)

你可以从INFORMATION_SCHEMA.TABLES获取表的列表,然后光标遍历每个表并执行一些动态sql来获取每个表的COUNT(*)。是的,这是可能的,但我不知道是否有更简单的解决方案。

答案 2 :(得分:0)

我希望以下查询可以帮助您解决问题

  

SELECT sc.name +&#39;。&#39; + ta.name TableName,SUM(pa.rows)RowCnt FROM   sys.tables ta INNER JOIN sys.partitions pa ON pa.OBJECT_ID =   ta.OBJECT_ID INNER JOIN sys.schemas sc ON ta.schema_id =   sc.schema_id WHERE RowCnt&gt; 0 GROUP BY sc.name,ta.name ORDER BY   SUM(pa.rows)DESC