Sql 如何获取包含行的表的列表?

Sql 如何获取包含行的表的列表?,sql,sql-server,Sql,Sql Server,如何获取数据库中包含行的表列表 Select A.Name From Sys.Tables A -- Inner Join with ? -- Or What conditions ? 可能吗 请引导我! 谢谢。您可以从INFORMATION\u SCHEMA.tables中获取表列表,然后通过游标遍历每个表并执行一些动态sql来获取每个表的计数*。是的,这是可能的,但我不知道是否有更简单的解决方案。这个查询会有所帮助 SELECT obj.na

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

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

请引导我!
谢谢。

您可以从INFORMATION\u SCHEMA.tables中获取表列表,然后通过游标遍历每个表并执行一些动态sql来获取每个表的计数*。是的,这是可能的,但我不知道是否有更简单的解决方案。

这个查询会有所帮助

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'

编辑为仅显示用户表。

我希望下面的查询能够帮助您解决问题

选择sc.name+'.'.+ta.name TableName,SUMpa.rows RowCnt FROM sys.tables ta内部连接pa.OBJECT\u ID上的sys.partitions pa= ta.OBJECT\u ID在ta.schema\u ID上内部联接sys.schemas sc= sc.schema_id,其中RowCnt>0按sc.name分组,ta.name按顺序分组 SUMpa.rows DESC


@AlexandreSantos我有一个名为Account的数据库。不,什么数据库类型?MySQL、MSSQL、Oracle…@AlexandreSantos我正在使用SQL Server 2012。谢谢。答案就在这里:它是可以接受的,但是显示了用户表以外的其他对象。无论如何,谢谢你。不要编辑你想要复制和粘贴答案的代码。这将帮助我:当CTE为SELECT sc.name+'.'.+ta.name TableName时,SUMpa.rows RowCnt FROM sys.tables ta internal JOIN sys.partitions pa ON pa.OBJECT_ID=ta.OBJECT_ID internal JOIN sys.schema sc ON ta.schema_ID=sc.schema_ID其中ta.is_ms_shipped=0,pa.index_ID在1,0组中按sc.name,ta.name从CTE中选择*,其中RowCnt>0