sqlserver2005自动排序的问题

lnwuyaowei 2006-06-16 11:22:03
有一个小的表,第一列为nvarchar(10),是主键列,
插入数据后发现用select查询出来的数据是按第一列进行排序后的数据,我不想让它自动排序,只想让它按原始录入顺序显示出来,应当怎么做呢?
...全文
339 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
羽佳0627 2006-06-20
  • 打赏
  • 举报
回复
SQLServer中数据表创建主键时必须在主键列创建索引,默认是聚集索引(clustered index),聚集索引会重新对数据行的物理顺序进行排序,因此一个表只能创建一个聚集索引。
但可以在创建主键时显示设置为非聚集索引(nonclustered index),只需要在创建主键时使用primary key nonclustered index就可以了,这样数据行的物理顺序没有改变。
xeqtr1982 2006-06-16
  • 打赏
  • 举报
回复
楼主参考一下这个帖子

http://community.csdn.net/Expert/topic/4818/4818344.xml?temp=.9596521
athossmth 2006-06-16
  • 打赏
  • 举报
回复
yesyesyes果然言简意赅,让我唐僧一下 :p

如果有clustered index,没有sort by的select返回结果按照clustered index的顺序;
(所有primary key都自动带一个clustered index)
如果没有,sql不保证返回的顺序;
yesyesyes经试验,发现此时sql按照数据输入的顺序返回结果集;
所以呢,可以创建一个table,不要加primary key,只为查找增加nonclustered index,为唯一性创建unique constraint,
这样没有sort by的select返回结果就会按照输入的顺序。

yesyesyes 2006-06-16
  • 打赏
  • 举报
回复
NONCLUSTERED

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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