请教如何判断表大小

yipulong 2007-01-30 11:57:18
我要从有着1000多个表的数据库中找出里边存有数据的表,就是非空表
如果能按大小排序最好,谢谢

另外还想知道,怎么从查询分析器中写指令,从所有表中找有(比如FModel字段,字段中有内容‘abcde’)的表

...全文
347 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
glacier111 2007-01-30
  • 打赏
  • 举报
回复
帮顶
bugchen888 2007-01-30
  • 打赏
  • 举报
回复
sp_spaceused是从sysindex中取rows栏位,虽然速度快,但是这个值并不一定准确.
所以最好还是现取Count(*).

sp_msforeachtable是当前数据库中的对每个Table执行同一句SQL的.
Andy-W 2007-01-30
  • 打赏
  • 举报
回复
--用下面这个就行啦.

--得到数据库中所有表的空间/记录情况

create table #tb(表名 sysname,记录数 int
,保留空间 varchar(10),使用空间 varchar(10)
,索引使用空间 varchar(10),未用空间 varchar(10))

insert into #tb exec sp_MSForEachTable 'EXEC sp_spaceused ''?'''

select * from #tb

go
drop table #tb

来源:http://topic.csdn.net/t/20040107/15/2642472.html#
中国风 2007-01-30
  • 打赏
  • 举报
回复
exec sp_spaceused [表名]--列(rows)为表的记录数、表的大小等信息
用动态语句用也临时表,再查看临时表就行了
拓狼 2007-01-30
  • 打赏
  • 举报
回复
select object_name(id),rowcnt from sysindexes where indid<2 and objectproperty(id,'isusertable')=1
order by 2 desc
yipulong 2007-01-30
  • 打赏
  • 举报
回复
bugchen888(臭虫) 要是你能给解释下语句就 好了;看来我得找被SQL的书好好练习下
bugchen888 2007-01-30
  • 打赏
  • 举报
回复
sp_msforeachtable 'SELECT ''?'',COUNT(*) FROM (SELECT TOP 1 1 AS x FROM ?) a HAVING COUNT(*)>0'

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧