因为ID 没有索引。
影响ID顺序的基本是索引,其次是数据槽位,槽位基本不会被外界入侵修改,主要就是索引有序就可以,因为索引也记录元组的槽位,槽位就是记录在数据页中的位置。
索引类似如下结构:
创建索引!
use DBEdwinCREATE UNIQUE CLUSTERED INDEX IDX_Note ON dbo.CNote (ID ASC)
并没有用order 排序关键字!目前SQL server 聚集索引只能创建一个,聚集索引影响存储结构,位置,输出顺序等。所以要格外考虑。
数据的存储顺序和查出来后显示的顺序不同,看问题提出者的意思,是想改变数据的存储顺序。可以充分利用主键,缺省的主键有聚簇索引特性,而聚簇索引的条目存放顺序与数据本身的存放顺序一致,充分利用这一点,改变主键或主键字段的取值,即可完成数据存储顺序的自编排。
例子中的id像是个常用的主键字段名,那么,修改某条记录的id值,无论是通过insert还是update,均已能够完成对应数据条目存储位置的变化。
如果想对根据任意字段实现存储顺序的自编排,恐怕是不行的,除非可以撤销表的原有主键,而将该字段设置为主键,但设为主键,就要求该字段的不可重复、不许为空等约束,而不是任意。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)