今天需要筛选出来库中行数不为零的表,于是动手写下了如下存储过程。

CREATE PROCEDURE TableCount AS
BEGIN
SET NOCOUNT ON
DECLARE @t1 AS TABLE(id INT IDENTITY,NAME NVARCHAR(50),RowsCount INT)
DECLARE @indexid AS INT
DECLARE @maxid AS INT
DECLARE @count AS INT
DECLARE @name AS VARCHAR(50)
DECLARE @sqlstr AS NVARCHAR(500)
INSERT INTO @t1 SELECT NAME,0 FROM dbo.sysobjects WHERE type='U'
SELECT @maxid=MAX(id),@indexid=1 FROM @t1
WHILE(@maxid>=@indexid)
BEGIN
SELECT @name = name FROM @t1 WHERE id=@indexid
SET @sqlstr = 'SELECT @Count1=COUNT(0) FROM '+@name
exec sp_executesql @sqlstr,N'@Count1 int output',@count output
UPDATE @t1 SET RowsCount=@count WHERE  id=@indexid
SET @indexid=@indexid+1
END
SET NOCOUNT OFF
SELECT * FROM @t1 WHERE RowsCount>0
END
GO
EXEC TableCount
GO

这样大功告成!

事后上网查阅相关资料发现有更简便的方法,贴在这里供大家参考吧。

CREATE TABLE #temp (Name VARCHAR (255), RowsCount INT)
EXEC sp_MSforeachtable 'INSERT INTO #temp SELECT ''?'', COUNT(0) FROM ?'
SELECT Name, RowsCount FROM #temp WHERE RowsCount>0 ORDER BY Name
DROP TABLE #temp

注: 系统存储过程sp_MSforeachtable和sp_MSforeachdb,用于遍历每个表和遍历每个数据库。

总结,遇到问题还是先查一下有没有现成的方法能省不少的时间的,而且还可以学习到新的知识。

@空紫竹 提供的更快捷的方法: (2015-03-27编辑)

select rows,OBJECT_NAME(id) as TABLENAME
from sysindexes
where indid=0

转载于:https://www.cnblogs.com/erdeni/p/AllTableRowsCount.html

MSSQL数据库统计所有表的记录数相关推荐

  1. SQLSERVER中统计所有表的记录数

    SQLSERVER中统计所有表的记录数 利用系统索引表sysindexes中索引ID indid<1的行中的rows列存有该表的行数这一特点.    方法是利用隐藏未公开的系统存储过程sp_MS ...

  2. mysql查询一个数据库所有表的记录数,mysql 查看数据库中所有表的记录数

    mysql使用select count(*) from table_name可以查询某个表的总记录数.想快速的知道数据库中所有表的记录数信息怎么办?如果使用mysql的版本在5.0及以上,可以通过查询 ...

  3. 查询数据库中所有表的记录数

    查询数据库中所有表的记录数 方法1 直接查询,方法简单,但达不到想要的效果,记录数稍微多一点,总数就偏高 方法2 拼接 select count(主键id) 语句 方法1 直接查询,方法简单,但达不到 ...

  4. 统计sql server数据库中所有表的记录数

    因工作需要查看库里每个表中的记录数,逐表查询太辛苦,故写一过程处理如下: --基本思路为:到系统表查出表名:然后逐表构造sql语句,查询记录数并插入临时表 --创建临时表,保存数据    create ...

  5. MySQL——查询数据库、数据表总记录数

    方法一  information_schema information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式.information_schema就记录了数据 ...

  6. mysql查看当前库所有表记录数_mysql中查看数据库中所有表的记录数

    我们继续我们的博客创建.           在一个项目日常的运行中,常常会为服务过慢而导致用户体验不好,在这一点上,常常需要进行性能优化,而如果没有针对性的对某一个 模块进行优化,那么效果往往是不理 ...

  7. oracle快速统计表条数_Oracle快速统计大表总记录数

    你还在苦思冥想怎样快速统计一张装有大量数据的表的总记录数吗? 你还在用select count(*) from table_name 吗? 可以来试试我的新发现: 如果想统计一张上千万或上亿的数据量的 ...

  8. Oracle查询数据库中所有表的记录数

    方法一: 首先建立一个计算函数 >>>>>>>>>>>>>>>>>>>>> ...

  9. sqlite 统计每张表的记录数_Excel单页式人事管理表,档案记录,自带查询统计,简单实用...

    Hello大家好,我是帮帮.今天跟大家分享一张Excel单页式人事管理表,日常档案记录,自带查询统计,简单实用. 为了让大家能更稳定的下载模板,我们又开通了全新下载方式(见文章末尾),以便大家可以轻松 ...

最新文章

  1. 第一章 MongoDb概述
  2. java编译器 Javac 编译原理
  3. unordered_map的使用特性
  4. python数据框添加一列无列名_Python将列添加到数据框导致NaN
  5. 软件工程专业学生如何在研二期间通过六级——我的六级之路
  6. 2005免费书记下载-[NEW]
  7. 四元组相加获得target
  8. C89 和 C99的标准比较
  9. VS2015+Opencv3.2配置(一次配好)
  10. 如何利用ArcScene建立3维地层模型
  11. xjoi9235区间翻转
  12. 儿童python编程入门-青少年Python编程入门 PDF 超清版
  13. 北邮OJ 126 中序遍历序列
  14. 把脉城市交通 共商缓堵良策
  15. matlab用三角分解法解函数
  16. Discuz的sc 和tc版本有什么区别
  17. iOS 9适配技巧(更新版)
  18. 记录-链表头插尾插区别
  19. 基于java springboot android安卓点餐外卖系统源码(毕设)
  20. 安卓基本知识--备用

热门文章

  1. oracle中创建触发器
  2. Exchage 2007 Client Application Functions(2) -- 如何收取邮件
  3. 基于IndexedDB实现简单文件系统
  4. RedHat/CentOS 7通过nmcli命令管理网络教程
  5. Cstring的使用
  6. [Python]小百合十大爬虫
  7. 关于Jfinal的分享代码托管GitHub
  8. jquery中输入验证中一个不错的效果
  9. 坐班族如何摆脱粗壮大腿
  10. 分享EOS加拿大的文章《REX——从源代码做技术解析》