自动编号,出现知序 select * from A order by id 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create clustered index index_name on A(ID)goselect * from A select id , new_id = (select count(1) from a where id < t.id) + 1 from a t idntity列未必与记录物理顺序对应。 idntity 它本来就是自动编号的,,你加一条记录进行,你自动加1,怎么说不是与物理记录对应呢 就好像,你在磁盘D上有个文件 x.txt, 你再放个y.dat,z.avi ,不是说文件是后面建它的地址就会靠后的.而且文件存放的位置还可能是不连续的。其实都是一样的道理, 你整理磁盘碎片后,系统尽可能的把文件放在连续的空间。就像你打开文件夹,排列图标,按修改时间一样,这种显示的顺序是逻辑上的。对你的表而言你加一条记录,自动标识列加1,你认为一行新记录被追加在最后, 这些都是逻辑上的, 物理上记录顺序怎么存,并不是你想的那样。建立聚集索引,则会将记录顺序重排。 问题是这个表就三个字段" id(int identity(1,1) cnName(varchar(50)),enName(varchar(50))也没建聚集索引, 不一定要建了才会这样,可能插入的时候物理顺序与id大小走向并不一致。如果你是指以前是id顺序排的,而没有进行什么操作,突然就变成乱序了,这倒是有点奇怪,否则就很正常。 并且select * from A 的时候,它输出的也是按这种“1,2,8,3,4,5,6 ”的乱序出来的以前我也有遇到这种现象,但我ID索引重索引一次,就解觉,但这次就是不行 msde2000 数据库恢复错误! 启动SQL2005需要哪些windows服务呢 求一SQL语句,为空值时如何返回空字符串? 存储过程活动事务 远程SQLServer服务器数据导出到本地Excel,最节省资源的方式? 添加列 sqlserver2008 numeric类型问题 网站又被挂马了,怎么办? Sqlserver垮库查询 openquery乱码问题 请教 毕业设计(库存管理系统pb7+sqlserver7.0) sql高手请进!在分组的情况下查一个表的行数和符合条件的行数,一条sql语句可以实现吗? 请大虾帮忙写一存储过程,急用,先谢了.
go
select * from A
idntity列未必与记录物理顺序对应。
idntity 它本来就是自动编号的,,你加一条记录进行,你自动加1,怎么说不是与物理记录对应呢
其实都是一样的道理, 你整理磁盘碎片后,系统尽可能的把文件放在连续的空间。
就像你打开文件夹,排列图标,按修改时间一样,这种显示的顺序是逻辑上的。
对你的表而言
你加一条记录,自动标识列加1,你认为一行新记录被追加在最后, 这些都是逻辑上的, 物理上记录顺序怎么存,并不是你想的那样。
建立聚集索引,则会将记录顺序重排。