SQL查找数据库中每个表的行数

时间:2015-01-15 09:11:56

标签: sql-server-2012

我的目标是创建当前数据库中所有表的电子表格,该表将显示表名和每个表中的行数。奖励将是能够在表格中最后输入或更改任何内容时显示。我不确定最后一部分是否可行。

到目前为止,这就是我所拥有的...它没什么,但我只能在如何添加每个表行计数的情况下击败我。

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

2 个答案:

答案 0 :(得分:3)

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

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

获取所需的结果 - 当前数据库中的所有表以及每个表中的行数。

答案 1 :(得分:1)

CREATE TABLE #T
(TABLENAME VARCHAR(100) ,
COUNT INT)
INSERT INTO #T
EXEC SP_MSFOREACHTABLE 'SELECT ''?'' ,COUNT(*) FROM ?'
SELECT * FROM  #T
DROP TABLE #T