如何获取数据库中包含行的表的列表。
Select A.Name
From Sys.Tables A
-- Inner Join with ?
-- Or What conditions ?
有可能吗?
请指导我! 谢谢。答案 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