我们都知道,表中的行数可以通过聚合
函数计数计数()。如果你需要计算行数每桌(DBA可能有这样的要求),我们必须生成每个表的动态SQL语句并
执行它计数()函数,所以我们可以得到的结果。我见过一个很好的
解决互联网之前,忘了出处,写下来和大家
分享它。
该
方法利用
系统表sysindexes提供的行字段。行字段记录的索引的数据的行数。为解决代码如下:
复制代码代码如下所示:
选择schema_name(t.schema_id){ }为图式,T. Name为表名,i.rows为{行}
从sys.tables T,还是一样的我
在t.object_id = i.id和i.indid < = 1
该方法将sys.tables查看,
发现桌上的
名字和schema_id,并获取该表的架构名称通过schema_name
功能。过滤
条件i.indid <= 1只选择聚集索引或堆,每桌都至少有一堆或聚集索引,从而保证一行返回的每个表。以下是我在AdventureWorks数据库
运行查询的结果。
复制代码代码如下所示:
模式表的行数
----……---- ----—
销售店701
生产productphoto 101
生产productproductphoto 504
销售storecontact 753
个人
地址19614
生产productreview 4
生产交易记录113443
6人addresstype
这种方法的优点如下:
1。跑步的
速度很快。
2。因为没有访问
用户表,所以不会将锁放在用户表上,并且不会
影响用户表的
性能。
三.你可以写查询作为子查询,CTE,或观点,并把它与其他的查询组合。