【SQL】统计所有表的行数

环境:mssql ent 2k8 r2

原理:遍历所有用户表,用sp_spaceused过程分别获取每张表的行数并写入临时表,最后返回临时表

IF OBJECT_ID('tempdb..#TableRowCount','U') IS NOT NULL DROP TABLE #TableRowCount
GO
CREATE TABLE #TableRowCount (Name sysname PRIMARY KEY, RowCnt DECIMAL(11,0), Reserved VARCHAR(18), Data VARCHAR(18), Index_Size VARCHAR(18), Unused VARCHAR(18))
GO
DECLARE curCntAllTableRows CURSOR LOCAL FAST_FORWARD FOR
        SELECT name FROM sys.tables
OPEN curCntAllTableRows
DECLARE @TableName sysname
FETCH NEXT FROM curCntAllTableRows INTO @TableName
WHILE @@FETCH_STATUS=0
BEGIN
 INSERT INTO #TableRowCount EXEC sys.sp_spaceused @TableName
 FETCH NEXT FROM curCntAllTableRows INTO @TableName
END
CLOSE curCntAllTableRows
DEALLOCATE curCntAllTableRows

SELECT Name,RowCnt FROM #TableRowCount WHERE RowCnt>0
ORDER BY RowCnt DESC,Name

文毕。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏测试开发架构之路

SQL语句之奇形怪状的冷门函数

lag() over() SELECT C.*,LAG(C.column,1) OVER(ORDER BY C.column) FROM Table C; 第...

2953
来自专栏pangguoming

oracle的行级触发器使用

行级触发器: 当触发器被触发时,要使用被插入、更新或删除的记录中的列值,有时要使用操作前、后列的值. :NEW 修饰符访问操作完成后列的值 :OLD 修饰符访问...

3285
来自专栏乐沙弥的世界

SQL基础--> 约束(CONSTRAINT)

约束是表、列级的强制规定、是防止那些无效或有问题的数据输入到表中。当对该表进行DML

882
来自专栏行者常至

pgsql编写触发器

690
来自专栏跟着阿笨一起玩NET

SQL中存储过程中使用事务,并且加入异常处理机制.

1172
来自专栏互联网开发者交流社区

SQL-ROW_NUMBER() OVER函数的基本用法(源码案例)

1373
来自专栏电光石火

导出表结构(数据字典)

-- 数据字典 SELECT (case when a.colorder=1 then d.name else '' end)表名, a.co...

1936
来自专栏Hadoop数据仓库

Oracle 中 table 函数的应用

        表函数可接受查询语句或游标作为输入参数,并可输出多行数据。该函数可以平行执行,并可持续输出数据流,被称作管道式输出。应用表函数可将数据转换分阶段...

2388
来自专栏乐沙弥的世界

SQL基础--> 数据处理(DML、RETURNING、MERGE INTO)

--=================================================

922
来自专栏跟着阿笨一起玩NET

SQL SERVER 查询死锁

2561

扫码关注云+社区

领取腾讯云代金券