
正文
sqlserver表行数,sql server查询表行数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何查询SqlServer中所有表的数据行数,并且显示所有空表非空表
1、以数据库text为例:
USE text
go
SELECT ?A.NAME,MaxRows = MAX(B.rows)
FROM sys.tables A
INNER JOIN sys.partitions B?ON A.object_id = B.object_id
GROUP BY A.name
ORDER BY MAX(B.rows) DESC?- -按数据行数的降序进行排序显示
2、显示所有空表
USE text
go
SELECT ?A.NAME,MaxRows = MAX(B.rows)
FROM sys.tables A
INNER JOIN sys.partitions B?ON A.object_id = B.object_id
GROUP BY A.name
HAVING MAX(B.rows) = 0
3、显示所有非空表
USE text
go
SELECT ?A.NAME,MaxRows = MAX(B.rows)
FROM sys.tables A
INNER JOIN sys.partitions B?ON A.object_id = B.object_id
GROUP BY A.name
HAVING MAX(B.rows) 0
相关问答
Q1: SqlServer 2000 中如何快速获取表行数
嗨!这个跟很多条件有关的! 比如存储跨盘面造成缓慢
--------------------------------------------------
不说废话,看SQL,你看那个好就用那个,99.9%的情况下是第二种快!
SET STATISTICS TIME on
select count(*) from dbo.Order_Detail where detail_ID is not null;
SET STATISTICS TIME off
SET STATISTICS TIME on
select rowcnt from dbo.sysindexes where id=object_id('Order_Detail') and indid=1
SET STATISTICS TIME off
----------------------------------------------------------
你的1000万,我的也不少!时间30ms,第二种 2ms
Q2: SqlServer2008如何用函数获取表行数
两种方法:
--1
select count(1) from table_temp;
COUNT(*)
---------
12710
实际IO:31
--2
select MAX(ROWNUM) from table_temp
MAX(ROWNUM)
-----------
12710
实际IO:47
第一种方法速度更快
Q3: SQL server中的表, 最大行数和列数分别是多少?
在SQL
server2000中,一个数据库中最多可以创建20亿个表,每个表最多可以定义1024个列(字段),每行最多可以存储8060字节,表的行数及总大小仅受可用存储空间的限制。
Q4: MS SQL 如何查看一个数据库中所有表的行数
--读取库中的所有表名
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'要查的表名')
Q5: sql 查询某个库中的每个表的记录行数
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








