MS-SQL - 每个选择命令计算数据库中每个表的所有行[重复]

Posted

技术标签:

【中文标题】MS-SQL - 每个选择命令计算数据库中每个表的所有行[重复]【英文标题】:MS-SQL - Count all rows per table in a DB per Select Command [duplicate] 【发布时间】:2021-12-16 05:14:43 【问题描述】:

我编写了这个选择命令,它为我提供了具有数据库中相关列数的表。

SELECT
    t.TABLE_NAME,
    (SELECT
      COUNT(*)
    FROM
      INFORMATION_SCHEMA.COLUMNS
    WHERE
      table_name = t.TABLE_NAME) as COLUMNS
FROM INFORMATION_SCHEMA.TABLES t

我现在尝试扩展它并获取行,但我一直失败。 another thread 中有一个解决方案,但我缺少 INFORMATION_SCHEMA.TABLES 中的 TABLE_ROWS。 是否有另一种获取行的方法?

【问题讨论】:

这能回答你的问题吗? SQL count rows in a table(具体参见this answer。) 是的,很好。非常感谢拉努!这就是我需要的。 :) 【参考方案1】:

这很完美。谢谢@Larnu。

   SELECT
        t.TABLE_NAME,
        (SELECT
          COUNT(*)
        FROM
          INFORMATION_SCHEMA.COLUMNS
        WHERE
          table_name = t.TABLE_NAME) as COLUMNS,
        (select 
            sum([rows])
         from 
            sys.partitions
         where object_id=object_id(t.TABLE_NAME) and index_id in (0,1)) as ROWS
    FROM INFORMATION_SCHEMA.TABLES t

【讨论】:

使用sys.tables 而不是INFORMATION_SCHEMA.TABLES 哦,谢谢。现在我不再需要排除额外的视图。 :)

以上是关于MS-SQL - 每个选择命令计算数据库中每个表的所有行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL - 如何在一个查询中计算每个表的所有行

根据Log表的data字段计算每个玩家的总得分

使用核心数据计算多节表的总和

从表中选择最新的带时间戳的值,该表对于一个列 id 有多个条目,对于每个唯一的列 id 和来自另一个表的数据

计算基本事实表的行数

当我在 Redshift 中使用 DISTSTYLE ALL 分发表时,每个计算节点上的切片如何占 DISTSTYLE ALL'd 表的磁盘空间?