Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > 如何用 SQL 语句获取某个 ACCESS 表占用的磁盘空间大小?
【标  题】:如何用 SQL 语句获取某个 ACCESS 表占用的磁盘空间大小?
【关键字】:SQL,ACCESS
【来  源】:http://blog.csdn.net/changechange/archive/2006/03/12/622271.aspx

如何用 SQL 语句获取某个 ACCESS 表占用的磁盘空间大小?

Your Ad Here

如何用 SQL 语句获取某个 ACCESS 表占用的磁盘空间大小?

作者:cg1  摘自:access911.net  :cg1  更新日期:2006-2-24  浏览人次: 47

专题地址:

http://access911.net/?kbid;72FAB11E1BDCEEF3

 

简述:

如何用 SQL 语句获取某个 ACCESS 表占用的磁盘空间大小?《查询》

 

阅读前需掌握:

熟练掌握 VBA 编程

 

难度等级:

200

















































 

 

问题:

  如何得到一个access表占用磁盘空间的大小呢?
这个表可能包括ole字段??如何做呢?
能否把所有的字段都先len再sum然后得到大小呢?
在 SQL SERVER 2000 中可以用 sp_spaceused 编程获得

 

exec sp_MSForEachTable 
@precommand=N'
create table ##(
id int identity,
表名 sysname,
字段数 int,
记录数 int,
保留空间 Nvarchar(10),
使用空间 varchar(10),
索引使用空间 varchar(10),
未用空间 varchar(10))',
@command1=N'insert ##(表名,记录数,保留空间,使用空间,索引使用空间,未用空间) exec sp_spaceused ''?''
update ## set 字段数=(select count(*) from syscolumns where id=object_id(''?'')) where id=scope_identity()',
@postcommand=N'select * from ## order by id drop table ##'

access 如何完成?

 

 


回答:

  Access 不像 SQL SERVER ,不存在此功能。其实在 SQL Server 中你反编译 sp_spaceused 这个系统存储过程可以看到它都是通过查询系统表,比如:sysfiles,sysindexes,spt_values 来判断其占用空间大小的。而 Access 中系统表并不存储这些信息。

 

在 ACCESS 永远只计算 MDB 的大小,不计算表的大小。但是你可以通过判断每个表的字段类型以及记录数估算出大小,或者干脆将单个表导出到一个新的 MDB 来估算大小。
如果你只是为了得到 OLE 大小,可以用
select sum(lenB(b)) as 总OLE大小 from table_name

关于直接通过 LEN 和 SUM 来获取数据大小是一个思路,但是不能直接完成,因为 LEN 可能对 TEXT 和 OLE对象 字段有效,但是对数字等字段无效,你必须另外编程通过判断数字字段的字段类型来判断其数据占用的空间。而且是估算 ACCESS 中数据的大小,而不是占用磁盘空间的大小。即使你估算了所有的表的数据量大小,加总后还是不等于 MDB 的实际占用磁盘空间大小,因为还有系统表、临时表、表的自定义属性会占用额外的空间,而且有了自定义属性后占用的空间是不确定的。当然,如果你要彻底判断所有这些情况不是不可以,只是非常麻烦而已,要编写很多程序,并且用到 JET SQL / ADO / DAO / ADOX 才能判断。

 

 

 

access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

 

 

 

适用环境:

Access 2000
Access XP
Access 2003

 

关键字:

磁盘空间,占用  >>>
JDBC中获取数据表的信息:【上一篇】
ACCESS JET SQL 分段或者交叉统计的查询语句怎么写?:【下一篇】
【相关文章】
  • 如何在SQLSERVER中快速有条件删除海量数据
  • SQL Server不能启动的常见故障
  • SQL SERVER的内存会不断增加,问题分析
  • Transact SQL 常用语句以及函数简易说明(含示例)
  • 撞到當機方回頭--Mysql的一個查詢問題3/17
  • 整理了一些t-sql技巧
  • SqlCommandBuilder.DeriveParamters(SqlCommand)
  • Java中读取SQL Server数据库空字段异常的Bug
  • SQL优化
  • 最详细的SQL注入相关的命令整理
  • 【随机文章】
  • 违规用支付宝操作信用卡 网上大额非法套现
  • 使用PreparedStatement为不同的数据库编写可移植的数据库存取方法(2)
  • 一个odbc连mssql分页的类
  • HBASIC集成开发环境及语言介绍[原转]
  • 宽带接入的统一用户管理
  • AAF灵便应用框架简介系列(5):对象的持久化(高级)
  • 如何利用C生成.so供Mono调用
  • “震荡波杀手”分析报告(2)
  • [3DS Max教程]茶杯(旋转+多边形建模)
  • 让 Flash 支持 Wma
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.