一个表设置主键后,表中记录的顺序变了

sybase2000 2008-10-04 08:47:41
一个表设置主键后,表中记录的顺序就按照主键的升序排列了,能不能按照表的初始记录顺序排列(即按表中记录插入的先后排列)
...全文
149 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangyanxxxx 2008-10-06
  • 打赏
  • 举报
回复
因为你设置主键的时候默认加上聚集索引,是聚集索引从新对堆中的数据进行了排序
ruihuahan 2008-10-05
  • 打赏
  • 举报
回复
建非聚集主键
aaajj 2008-10-05
  • 打赏
  • 举报
回复
记号
wzy_love_sly 2008-10-04
  • 打赏
  • 举报
回复
如果楼主只是想加约束
alter table 表名 add constraint 约束名 primary key nonclustered(列名)

primary聚集索引 --会改变实际存储顺序
unique是非聚集索引 --不会改变存储顺序
但只有一列,unique非聚集索引会自动使用索引扫描,所以也看起来也是改变顺序(但quique应该是没改变实际存储顺序)
wzy_love_sly 2008-10-04
  • 打赏
  • 举报
回复
主键叫约束,创建primary和unique约束,默认键是聚集索引,聚集索引会改变记录顺序
sybase2000 2008-10-04
  • 打赏
  • 举报
回复
没办法了吗?难道要保持表记录的初始状态就不能建主键?
wzy_love_sly 2008-10-04
  • 打赏
  • 举报
回复
键完主键因该改回不去了吧!
聚集索引已经改变了记录顺序,就算删除也还是改变后的顺序了

34,575

社区成员

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

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