sql 查询某个库中的每个表的记录行数

打比方{XX}数据库中,有很多张表我想通过一个语句可以知道每个表都有多少行记录,请问怎么写呢... 打比方{XX}数据库中,有很多张表 我想通过一个语句 可以知道每个表都有多少行记录,请问怎么写呢 展开
 我来答
百度网友fd76e12
推荐于2017-11-26 · TA获得超过167个赞
知道答主
回答量:74
采纳率:0%
帮助的人:68万
展开全部
select d.name as 表名,COUNT (*)as 记录 from syscolumns a inner join sysobjects d on a.id = d.id and d.xtype = 'U'
group by d.name
这是sqlserver 实现的,不知道符不符合。不过刚刚验证了一下,不是很对,估计是主键的原因,修改好了再看看
以上语句只能测试出部分,这个存储过程可以实现全部,sqlserver直接执行即可:
create table #temp(Recordcount int ,tableName varchar(30))
declare @tablename varchar(30)
declare @sql varchar(100)
declare @str varchar(30)
declare tablecursor cursor for
select name from sysobjects where xtype='u'
open tablecursor
fetch next from tablecursor into @tablename
while @@fetch_status=0
begin
set @str=@tablename
set @sql='insert into #temp(recordcount,tablename) select count(*),'+''''+@tablename+''''+' from '+@tablename
exec(@sql)
fetch next from tablecursor into @tablename
end
close tablecursor
deallocate tablecursor
select * from #temp drop table #temp
追问
能不能写个语句,出来的结果就是 表名,所有行数,这样的结果啊  感谢大侠
追答
create table #temp(Recordcount int ,tableName varchar(30))
declare @tablename varchar(30)
declare @sql varchar(100)
declare @str varchar(30)
declare tablecursor cursor for
select name from sysobjects where xtype='u'
open tablecursor
fetch next from tablecursor into @tablename
while @@fetch_status=0
begin
set @str=@tablename
set @sql='insert into #temp(recordcount,tablename) select count(*),'+''''+@tablename+''''+' from '+@tablename
exec(@sql)
fetch next from tablecursor into @tablename
end
close tablecursor
deallocate tablecursor
select * from #temp drop table #temp
就这个语句,执行完就出结果了,sqlserver的,其他的数据库的没尝试
硅谷少年
2019-07-09 · TA获得超过7555个赞
知道大有可为答主
回答量:7116
采纳率:82%
帮助的人:1409万
展开全部
最简单的是这个:
select a.name as '表名',b.rows as '表数据行数'
from sysobjects a inner join sysindexes b
on a.id = b.id
where a.type = 'u'
and b.indid in (0,1)
order by b.rows desc
亲测OK。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
射手幽灵伊
2013-09-22 · TA获得超过2716个赞
知道大有可为答主
回答量:4955
采纳率:81%
帮助的人:1947万
展开全部
如果你的每个表都有聚集索引,可以通过 select * from sysindexes,查看rows列。
追问
找是找到了,但不是我想要的结果,麻烦再问下,能不能写个语句,出来的结果就是 表名,所有行数,这样的结果啊  感谢大侠
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-22
展开全部
Oracle数据库是 SELECT TABLE_NAME ,NUM_ROWS FROM USER_TABLES。
但是在使用这个之前,需要进行一下数据收集。要不信息有点误差哦。是上次数据统计的结果。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式