我有一个包含 100 多个表的架构。 SQL Server 有没有一种方法可以找到所有单个表的计数,而无需输入表名 100 次。
结果集应显示如下所示:
表名 | 数 |
---|---|
表1 | 数 |
表2 | 数 |
我知道的唯一解决方案是在 Excel 中列出表名称,然后使用公式列出所有计数查询并粘贴到 SQL Server 中。但这需要找到每个模式的表列表并列出它们。有没有什么方法可以自动化它,唯一需要的输入是模式名称
与这个答案中描述的方式相同,但附加了
join
和 where
子句语句来过滤您感兴趣的任何架构:
select
o.[name] as tablename,
ddps.row_count as [rowcount]
from sys.indexes i
join sys.objects o on i.object_id = o.object_id
join sys.dm_db_partition_stats ddps on i.object_id = ddps.object_id and i.index_id = ddps.index_id
join sys.schemas s on o.schema_id = s.schema_id
where i.index_id < 2
and o.is_ms_shipped = 0
and s.[name] = '[YOUR SCHEMA NAME HERE]'
order by o.[name]