关闭

SQLServer使用identity函数生成带有自增列临时表遇到的一个排序问题

3337人阅读 评论(0) 收藏 举报

  今天在使用identity函数生成临时表的时候出现一个关于排序的问题.

select identity(int,1,1) myrow_id,billno
into #temp
from myTable
order by myTable.myrow_id

  我想按照myrow_id排序然后插入临时表#temp,并利用identity(int,1,1)函数生成行号列,结果#temp表里数据始终未能按照myrow_id排序。

  后来我想是不是由于identity(int,1,1)的别名和排序列名称重复,导致排序时sql把排序列当成了identity(int,1,1)呢?然后我把identity(int,1,1)的别名改为了id,问题解决,插入#temp中的结果集排序正常。

  结论:在使用identity函数生成临时表的时候,如果需要排序,那么identity的别名不能与排序列名称相同,否则排序失效。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:77220次
    • 积分:1036
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:22篇
    • 译文:0篇
    • 评论:15条
    文章存档
    最新评论