Sql server 2012 SQL来查找数据库中每个表的行数

Sql server 2012 SQL来查找数据库中每个表的行数,sql-server-2012,rowcount,Sql Server 2012,Rowcount,我的目标是创建当前数据库中所有表的电子表格,该电子表格将显示表名和每个表中的行数。一个额外的好处是还能够显示表中最后一次输入或更改的时间。不过,我不确定最后一部分是否可行 这就是我目前所拥有的。。。这没什么大不了的,但我就是不知道如何将每表行数添加到表中 SELECT name, type, type_desc FROM [scheme].sys.all_objects WHERE type = 'U' 可以对系统目录视图使用此查询: SELECT t.NAME AS TableNa

我的目标是创建当前数据库中所有表的电子表格,该电子表格将显示表名和每个表中的行数。一个额外的好处是还能够显示表中最后一次输入或更改的时间。不过,我不确定最后一部分是否可行

这就是我目前所拥有的。。。这没什么大不了的,但我就是不知道如何将每表行数添加到表中

SELECT name, type, type_desc
FROM [scheme].sys.all_objects
WHERE type = 'U'

可以对系统目录视图使用此查询:

SELECT 
    t.NAME AS TableName,
    p.rows AS RowCounts
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
WHERE 
    t.NAME NOT LIKE 'dt%' 
    AND t.is_ms_shipped = 0
    AND i.OBJECT_ID > 255 
GROUP BY 
    t.Name, p.Rows
ORDER BY 
    t.Name

要获得所需结果,请输入当前数据库中的所有表,以及每个表中的行数。

所有表是否具有相同的架构?列名相同?@Nadeem_MK是的,它们都有相同的架构。我只是用我的数据库名替换了[scheme]。我们在其中有大量的表,我们基本上希望得到一个包含数据的表列表,看看它是否被使用。不幸的是,它们也没有相同的列名。请不要只发布代码答案,而是解释代码的作用。这比@marc_的上述答案慢了100%,但仍然有效,谢谢你,它的工作非常完美,比我预期的快得多。只是一个问题,是否有可能获取对数据库中的任何表进行任何修改的日期时间?@5tar Kaster:没有,该时间戳不是由SQL Server存储的,也不可用。
SELECT 
    t.NAME AS TableName,
    p.rows AS RowCounts
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
WHERE 
    t.NAME NOT LIKE 'dt%' 
    AND t.is_ms_shipped = 0
    AND i.OBJECT_ID > 255 
GROUP BY 
    t.Name, p.Rows
ORDER BY 
    t.Name