我想把数据库中所有的表,每个有多少条数据全部统计出来
答案:2 悬赏:80 手机版
解决时间 2021-02-26 20:29
- 提问者网友:不要迷恋哥
- 2021-02-26 00:18
我想把数据库中所有的表,每个有多少条数据全部统计出来
最佳答案
- 五星知识达人网友:掌灯师
- 2021-02-26 01:22
declare @ssql nvarchar(4000)
declare @name varchar(100)
declare @tReturn table(name varchar(100),num int)
declare @i int,@count int,@num int
declare @t table(i int,name varchar(100))
insert into @t(name) select name from dbo.sysobjects where type = 'U'
set @i=0
update @t set i=@i,@i=@i+1
select @count=count(*) from @t
set @i=1
while @i<=@count
begin
select @name=name from @t where i=@i
set @ssql= N'select @num=count(*) from '+@name
exec sp_executesql @ssql,N'@num int out',@num out
insert into @tReturn values(@name,@num)
select @i=@i+1
end
select * from @tReturn order by num
--在sql数据库后台运行
declare @name varchar(100)
declare @tReturn table(name varchar(100),num int)
declare @i int,@count int,@num int
declare @t table(i int,name varchar(100))
insert into @t(name) select name from dbo.sysobjects where type = 'U'
set @i=0
update @t set i=@i,@i=@i+1
select @count=count(*) from @t
set @i=1
while @i<=@count
begin
select @name=name from @t where i=@i
set @ssql= N'select @num=count(*) from '+@name
exec sp_executesql @ssql,N'@num int out',@num out
insert into @tReturn values(@name,@num)
select @i=@i+1
end
select * from @tReturn order by num
--在sql数据库后台运行
全部回答
- 1楼网友:骨子里都是戏
- 2021-02-26 02:08
在oracle10g中统计所有表的数据量可以使用如下语句:
select sum(num_rows) from dba_tables where owner like 'schema';
说明一下,以上语句必须用dba账户登录才可以使用,其中的schema参数就是当前用户名。
chema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables, views, sequences, stored procedures, synonyms, indexes, clusters, and database links。
一个用户一般对应一个schema,该用户的schema名等于用户名,并作为该用户缺省schema。这也就是我们在企业管理器的方案下看到schema名都为数据库用户名的原因。
最简单的理解:以你计算机的用户为例,如果你的计算机有3个用户,那么每个用户登录系统看到的(使用的)功能是可以不相同的!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯