MS SQL 如何查看一个数据库中所有表的行数

MS SQL 如何查看一个数据库中所有表的行数,第1张

--读取库中的所有表名

select name from sysobjects where xtype='u'

--读取指定表的所有列名

select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')

获取数据库表名和字段

sqlserver中各个系统表的作用

sysaltfiles 主数据库 保存数据库的文件

syscharsets 主数据库 字符集与排序顺序

sysconfigures 主数据库 配置选项

syscurconfigs 主数据库 当前配置选项

sysdatabases 主数据库 服务器中的数据库

syslanguages 主数据库 语言

syslogins 主数据库 登陆帐号信息

sysoledbusers 主数据库 链接服务器登陆信息

sysprocesses 主数据库 进程

sysremotelogins主数据库 远程登录帐号

syscolumns 每个数据库 列

sysconstrains 每个数据库 限制

sysfilegroups 每个数据库 文件组

sysfiles 每个数据库 文件

sysforeignkeys 每个数据库 外部关键字

sysindexs 每个数据库 索引

sysmenbers 每个数据库 角色成员

sysobjects 每个数据库 所有数据库对象

syspermissions 每个数据库 权限

systypes 每个数据库 用户定义数据类型

select 列名=name from syscolumns where id=object_id(N'要查的表名')

可以考虑折衷的方法,新建一个表,将几个表的总数保存到这个表中,每次做分页的时候查询这个表就好了,这也是个很常见的设计

比如说一个论坛论坛将总贴数这个数值保存在论坛总表里面或者版块,将一个版块下面的贴数保存在版块表里面这2种设计都可以使得你不需要通过count来获得总数这种方式的冗余对你这样大数据量的情况更加适合也是属于必须的冗余

这样设计的表,你在插入新数据的时候要额外的更新这个字段,但是当这个数值非常大的,时候,你未必要实时的更新这个字段,你可以在需要的,执行一下count,然后用count得到的数字来更新这个字段

select dname as 表名,COUNT ()as 记录 from syscolumns a inner join sysobjects d on aid = did and dxtype = 'U'

group by dname

这是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

数据库查询数据记录之后,在java中取行数的实例如下:

select count() as linesize from SubType where SUPERTYPEID= 

linesize就是行数

select count()函数可以获得所有记录的行数。

具体看你什么数据库了,还有你字段1,字段2,字段3哪个字段是字符类型的。

比如字段3是字符类型:

oracle写法:

SELECT 字段1,字段2,字段3 FROM 打印数据表 where 打印时间>='2018-09-01' AND 打印时间<'2018-09-19'

union all

select null,null,'合计:'||count() from 打印数据表 where 打印时间>='2018-09-01' AND 打印时间<'2018-09-19'

mysql写法:

SELECT 字段1,字段2,字段3 FROM 打印数据表 where 打印时间>='2018-09-01' AND 打印时间<'2018-09-19'

union all

select null,null,concat('合计:',(cast(count() as varchar) from 打印数据表 where 打印时间>='2018-09-01' AND 打印时间<'2018-09-19'

sqlserver写法:

SELECT 字段1,字段2,字段3 FROM 打印数据表 where 打印时间>='2018-09-01' AND 打印时间<'2018-09-19'

union all

select null,null,'合计:'+(cast(count() as varchar) from 打印数据表 where 打印时间>='2018-09-01' AND 打印时间<'2018-09-19'

以上就是关于MS SQL 如何查看一个数据库中所有表的行数全部的内容,包括:MS SQL 如何查看一个数据库中所有表的行数、如何最有效率的查询数据库中某个表的行数、sql 查询某个库中的每个表的记录行数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9817312.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存