Sql 返回给定架构的表中的行数

Sql 返回给定架构的表中的行数,sql,sql-server,tsql,Sql,Sql Server,Tsql,我想返回TSQL 示例:Schema=ABC,Tables=ABC.T1,ABC.T2,ABC.T3 查询的输出: No of records Table 10 T1 5 T2 36 T3 使用“全部联合”: select count(*) as [# of records], 't1' as [Table] from abc.t1 union all select count(*), 't2' from abc

我想返回
TSQL

示例:Schema=ABC,Tables=ABC.T1,ABC.T2,ABC.T3

查询的输出:

No of records  Table
 10             T1
 5              T2
 36             T3

使用“全部联合”:

select count(*) as [# of records], 't1' as [Table]
from abc.t1
union all
select count(*), 't2'
from abc.t2
union all
select count(*), 't3'
from abc.t3;

使用“全部联合”:

select count(*) as [# of records], 't1' as [Table]
from abc.t1
union all
select count(*), 't2'
from abc.t2
union all
select count(*), 't3'
from abc.t3;

如果不需要事务一致的行计数,可以查询DMV。这将比大型表的
SELECT COUNT(*)
快得多:

SELECT t.name, SUM(p.rows) AS row_count
FROM sys.tables AS t
JOIN sys.partitions AS p ON p.object_id = t.object_id AND p.index_id IN(0,1)
WHERE OBJECT_SCHEMA_NAME(t.object_id) = N'ABC'
GROUP BY t.name;

如果不需要事务一致的行计数,可以查询DMV。这将比大型表的
SELECT COUNT(*)
快得多:

SELECT t.name, SUM(p.rows) AS row_count
FROM sys.tables AS t
JOIN sys.partitions AS p ON p.object_id = t.object_id AND p.index_id IN(0,1)
WHERE OBJECT_SCHEMA_NAME(t.object_id) = N'ABC'
GROUP BY t.name;

如果我只知道模式,不知道属于该模式的表的数量。在这个例子中,我指定了3,但是如果它是n呢?@Gita。这将反映您的实际需求-->非常感谢!如果我只知道模式,而不知道属于该模式的表的数量,则得到了解决方案。在这个例子中,我指定了3,但是如果它是n呢?@Gita。这将反映您的实际需求-->非常感谢!找到解决办法了吗