MSSQL数据库统计所有表的记录数
今天需要筛选出来库中行数不为零的表,于是动手写下了如下存储过程。
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数据库统计所有表的记录数相关推荐
- SQLSERVER中统计所有表的记录数
SQLSERVER中统计所有表的记录数 利用系统索引表sysindexes中索引ID indid<1的行中的rows列存有该表的行数这一特点. 方法是利用隐藏未公开的系统存储过程sp_MS ...
- mysql查询一个数据库所有表的记录数,mysql 查看数据库中所有表的记录数
mysql使用select count(*) from table_name可以查询某个表的总记录数.想快速的知道数据库中所有表的记录数信息怎么办?如果使用mysql的版本在5.0及以上,可以通过查询 ...
- 查询数据库中所有表的记录数
查询数据库中所有表的记录数 方法1 直接查询,方法简单,但达不到想要的效果,记录数稍微多一点,总数就偏高 方法2 拼接 select count(主键id) 语句 方法1 直接查询,方法简单,但达不到 ...
- 统计sql server数据库中所有表的记录数
因工作需要查看库里每个表中的记录数,逐表查询太辛苦,故写一过程处理如下: --基本思路为:到系统表查出表名:然后逐表构造sql语句,查询记录数并插入临时表 --创建临时表,保存数据 create ...
- MySQL——查询数据库、数据表总记录数
方法一 information_schema information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式.information_schema就记录了数据 ...
- mysql查看当前库所有表记录数_mysql中查看数据库中所有表的记录数
我们继续我们的博客创建. 在一个项目日常的运行中,常常会为服务过慢而导致用户体验不好,在这一点上,常常需要进行性能优化,而如果没有针对性的对某一个 模块进行优化,那么效果往往是不理 ...
- oracle快速统计表条数_Oracle快速统计大表总记录数
你还在苦思冥想怎样快速统计一张装有大量数据的表的总记录数吗? 你还在用select count(*) from table_name 吗? 可以来试试我的新发现: 如果想统计一张上千万或上亿的数据量的 ...
- Oracle查询数据库中所有表的记录数
方法一: 首先建立一个计算函数 >>>>>>>>>>>>>>>>>>>>> ...
- sqlite 统计每张表的记录数_Excel单页式人事管理表,档案记录,自带查询统计,简单实用...
Hello大家好,我是帮帮.今天跟大家分享一张Excel单页式人事管理表,日常档案记录,自带查询统计,简单实用. 为了让大家能更稳定的下载模板,我们又开通了全新下载方式(见文章末尾),以便大家可以轻松 ...
最新文章
- 第一章 MongoDb概述
- java编译器 Javac 编译原理
- unordered_map的使用特性
- python数据框添加一列无列名_Python将列添加到数据框导致NaN
- 软件工程专业学生如何在研二期间通过六级——我的六级之路
- 2005免费书记下载-[NEW]
- 四元组相加获得target
- C89 和 C99的标准比较
- VS2015+Opencv3.2配置(一次配好)
- 如何利用ArcScene建立3维地层模型
- xjoi9235区间翻转
- 儿童python编程入门-青少年Python编程入门 PDF 超清版
- 北邮OJ 126 中序遍历序列
- 把脉城市交通 共商缓堵良策
- matlab用三角分解法解函数
- Discuz的sc 和tc版本有什么区别
- iOS 9适配技巧(更新版)
- 记录-链表头插尾插区别
- 基于java springboot android安卓点餐外卖系统源码(毕设)
- 安卓基本知识--备用