SQL2K的表属性里查看行数竟然跟实际不一样:( 图片不知道怎么传上来:(一是直接在企业管理器里看的表属性显示的行,二是用select count(*) from 表名 里出的值,不一样。系统是最新的SP4+2273的补丁。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 select count(*) from 有条件没,有的话当然不同了 select count(*) from 没条件,并且这个数据还大。在本机上测试的,肯定没有别人操作数据的。也不是所有的表都有问题,目前发现的有问题的表是没做主键的。 应该是你表中有空值行吧。select count(*) from aa 返回的是表中不存在 NULL 值的行数 select count(*) from 表名 这个肯定不会出错 无论有没有主键 都不会出错的! 估计是空值(null)造成的查询结果不一样. 1.用语句select rows from sysindexes where id=object_id('表名') AND indid=0查出来的行数与属性中的行数对比一下2.更新统计信息update statistics 表名3.再看行数 企业管理器的表属性中显示的行数不是查表得到的, 而是查系统表得到的(sp_spaceused '表名'的结果, 可以研究这个存储过程的内容, 就知道它是查什么系统表的了)当表中的数据发生变化后, 如果系统表没有得到及时更新, 就会出现楼主所述的情况 出现这种问题的时候, 你使用下面的语句更新一下系统表中的记录就好了USE 你的库名DBCC UPDATEUSAGE(0, N'你的表名') 谢谢大家,估计这个应该算是BUG了吧。根据USE 你的库名DBCC UPDATEUSAGE(0, N'你的表名')这个操作搞定了。谢谢 不知道该不该算BUG, 联机帮助上写明了2000及之前的版本是无法保证那个是准确的 安装vs2010后vs2008打开数据库时出现错误 出发器为什么只触发了一次 贤来坐坐。 作业定时运行的问题 SqlServer2000不支持这样的语法吗 Group by 求一个触发器 请教一个问题 怎么查看收缩数据库的状态? SQL初级问题 没写过触发器,大家帮我写这个 一个Delphi5+Sqlserver2000做的老程序如何快速改成英文版
在本机上测试的,肯定没有别人操作数据的。
也不是所有的表都有问题,目前发现的有问题的表是没做主键的。
select count(*) from aa 返回的是表中不存在 NULL 值的行数
2.更新统计信息
update statistics 表名
3.再看行数
DBCC UPDATEUSAGE(0, N'你的表名')
USE 你的库名
DBCC UPDATEUSAGE(0, N'你的表名')
这个操作搞定了。谢谢