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

原创 2007年09月26日 10:05:00

  今天在使用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的别名不能与排序列名称相同,否则排序失效。

相关文章推荐

sql server T-SQL 插入临时表时使用自增长键

select identity(int,1,1) id ,* into #tmp from tablename 有一点要注意,不能将 tablename这个表中的自增长列一并插入到临时表中. 如果是S...
  • ylqmf
  • ylqmf
  • 2009年11月30日 14:06
  • 4695

insert into 后获得自动插入的id(select @@identity)

当运行完插入语句后,执行select   @@identity就可得到自动生成的id 如果是sql server 最好用select SCOPE_IDENTITY() as id 因为@@id...

SQL IDENTITY(函数) 自动加自

IDENTITY(函数) 只用在带有 INTO table 子句的 SELECT 语句中,以将标识列插入到新表中。 尽管类似,但是 IDENTITY 函数不是与 CREATE TABLE 和 ...

管理SQL Server AlwaysOn(1)——基础维护

本文属于管理SQL Server AlwaysOn 系列文章 前言: 前面系列已经介绍了SQL Server AlwaysOn的知识点、安装演示及注意事项等。但是这并不是终点,更多的反而是起点。就像不...

MS SQL SERVER 主从数据库的实现

     主从库是两台服务器上的两个数据库,主库以最快的速度做增删改操作+最新数据的查询操作;从库负责查询较旧数据,做一些对实效性要求较小的分析,报表生成的工作。这样做将数据库的压力分担到两台服务器上...

SqlServer OpenXML函数忽略表中自增列

SqlServer OpenXML函数忽略表中自增列

一种自增列为主键时的并发访问问题——讨论Identity值访问

现象:     当业务涉及主从订单表时,主表主键OrderID为自增列,这时在涉及添加操作时,往往会出现如下的编程思路     insert order(...) values(...)    ...

SQL Server自增列(Identity列)的所有操作

一、定義 a)在Create Table

SqlServer2012自增列值突然增大1000的原因及解决方法

From SQL Server 2012 version, when SQL Server instance is restarted, then table's Identity value is ...

MySQL使用AUTO_INCREMENT列的表注意事项之update自增列篇

1. 说明 (1)对于MyISAM表,如果用UPDATE更新自增列,如果列值与已有的值重复,则会出错;如果大于已有的最大值,则会自动更新表的AUTO_INCREMENT,操作是安全的。 (2)对于in...
  • HW_LiBo
  • HW_LiBo
  • 2014年10月15日 14:16
  • 7519
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SQLServer使用identity函数生成带有自增列临时表遇到的一个排序问题
举报原因:
原因补充:

(最多只允许输入30个字)