单个查询,用于获取给定数据库中状态为“1”的所有表名、行计数和行数


Single query to get all the table name, row count and count of rows where status is '1' in a given database

我正在尝试获取表名,每个表中的记录数以及给定数据库中status='2'的每个表中的记录数,并通过jtable插件显示结果。我尝试查询类似的东西

$sql = "SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' and TABLE_SCHEMA = '{$table_schema}' ORDER BY " . $_GET["jtSorting"] . " LIMIT " . $_GET["jtStartIndex"] . "," . $_GET["jtPageSize"] . ";";

TABLE_ROWS返回近似值,如何获取精确值以及如何在同一查询中获取状态= 2的记录计数。

谢谢萨米尔

我认为您将需要编写一个过程,该过程可以返回每个表的自定义行计数。下面是查询,它可以为您提供具有总行数的表列表,但是如果您要基于过滤器(即status=2)进行行计数,则需要编写一个过程,您可以在其中进行循环并根据过滤器获取每个表的行数。

  SELECT      SCHEMA_NAME(A.schema_id) + '.' +
            A.Name as tablename, SUM(B.rows) AS 'RowCount'
    FROM        sys.objects A
    INNER JOIN sys.partitions B ON A.object_id = B.object_id
    WHERE       A.type = 'U'
    GROUP BY    A.schema_id, A.Name

谢谢苏雷什