日期:2014-05-16  浏览次数:20547 次

sqlserver2008中无索引无主键的临时表查询结果排序问题
   在存储过程中,我创建了临时表用来装我最后的返回结果(这个临时表是没有主键和索引的),然后用INSERT逐条向这个临时表中插入数据,最后执行select * from  【临时表】的返回结果会出现排序不确定的状况,大多数时候能按照我最初INSERT的顺序来,但是有非常小的概率会出现排序不对的状况。
    现在再给临时表加主键的这个解决方案我已经执行,但是这有100多个存储过程都是用的这样的方式,而且加一列在最后查结果的时候还要拼接字符串构成查询列,以便不让这列出现在结果集中(如果出现在结果集中,很有可能会对程序照成影响,改程序那会引来更多的麻烦)。
    所以请教一个好一些的解决方案,只改存错过程的前提下让结果集排序正确。拜托了!!!!
------解决方案--------------------
给出你的存储过程来看看。。应该只需要排序一下就OK了。
------解决方案--------------------
那是不是能证明中间结果的顺序并不十分重要呢?导致你全部都不加排序字段。如果很重要,痛苦一点也要改,不然治标不治本
------解决方案--------------------
引用:
我在临时表中间没有创建排序字段,只是在插入的时候是按照我需要的顺序插入的。但是在用select * from 【临时表】的时候,结果偶尔会不是按我插入的顺序来的。


那就排序把:

select * from 【临时表】 order by id