SQL SERVER临时表排序问题的解决方法

 更新时间:2021年01月19日 09:28:41   作者:潇湘隐者  
这篇文章主要给大家介绍了关于SQL SERVER临时表排序问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在SQL SERVER 2005/2008中,如果将有序的记录插入临时表,则从临时表查询出来的记录是有序的(不依赖ORDER BY也是有序状态),但是从SQL SERVER 2012开始,即使插入的记录集有序,查询出来的结果变成无序了。需要依赖ORDER BY来或得到一个有序结果。例如下面例子:

SELECT * INTO #tables FROM sys.tables ORDER BY name;
 
SELECT * FROM #tables;

如上所示,SQL SERVER 2014则是无序状态,我很是奇怪怎么从SQL SERVER 2012就开始变成无序了,这对我们来说犹如一个黑盒子,只知道结果集出现了变化,但是不知道内部啥变化导致这个现象出现。Records not sorted in the table when using ORDER BY clause to insert data into Temp Table 官方论坛对这个问题的描述如下:

如果有特殊的需要,要求临时表里面的数据有序,则可以通过创建聚集索引来解决这个问题。如下所示:

SELECT * INTO #tables FROM sys.tables WHERE 1= 0;
 
CREATE CLUSTERED INDEX IDX_#tables_NAME ON #tables(name);
 
INSERT INTO #tables SELECT * FROM sys.tables ORDER BY name;
 
SELECT * FROM #tables;


总结

到此这篇关于SQL SERVER临时表排序问题解决的文章就介绍到这了,更多相关SQL SERVER临时表排序问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SQLServer2022新特性Window子句的使用

    SQLServer2022新特性Window子句的使用

    Window 子句通常与 OVER() 子句相关,它经常与窗口函数一起使用,本文主要介绍了SQLServer2022新特性Window子句,具有一定参考价值,感兴趣的可以了解一下
    2024-08-08
  • SQL server 2019数据库安装教程详解

    SQL server 2019数据库安装教程详解

    SQL Server 是Microsoft 公司推出的关系型数据库管理系统,具有使用方便可伸缩性好与相关软件集成程度高等优点,Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,本章教程,介绍一下SQL Server 2019的安装过程
    2024-09-09
  • SQL Server如何建表的详细图文教程

    SQL Server如何建表的详细图文教程

    创建表之前一定要先了解数据类型与约束,这样我们才能创建正确的表,下面这篇文章主要给大家介绍了关于SQL Server如何建表的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-10-10
  • Sqlserver 死锁查询以及解锁方法

    Sqlserver 死锁查询以及解锁方法

    这篇文章主要介绍了Sqlserver 死锁查询以及解锁方法,通过实例代码讲解了sqlserver查看哪个表被锁表了以及解锁方法,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • 详解SQL游标的用法

    详解SQL游标的用法

    这篇文章主要介绍了SQL游标的用法,文中讲解非常详细,配合代码帮助大家更好的理解学习,感兴趣的朋友可以了解下
    2020-06-06
  • SQLSERVER数据库升级脚本图文步骤

    SQLSERVER数据库升级脚本图文步骤

    公司的系统需要从1.0升级到1.1,包括所有正在使用我们公司产品的客户,因为公司的客户遍布全国,就写了一个SQLSERVER数据库远程升级脚本图文步骤,大家参考使用吧
    2013-11-11
  • SQL Server怎么找出一个表包含的页信息(Page)

    SQL Server怎么找出一个表包含的页信息(Page)

    这篇文章主要给大家介绍了关于SQL Server是如何找出一个表包含的页信息(Page)的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用SQL Server具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-10-10
  • SQL Server误区30日谈 第15天 CheckPoint只会将已提交的事务写入磁盘

    SQL Server误区30日谈 第15天 CheckPoint只会将已提交的事务写入磁盘

    这个误区是由于太多人对日志和恢复系统缺少全面的了解而存在已久。CheckPoint会将自上次CheckPoint以来所有在内存中改变的页写回磁盘(译者注:也就是脏页),或是在上一个CheckPoint读入内存的脏页写入磁盘
    2013-01-01
  • SQLServer 使用rand获取随机数的操作

    SQLServer 使用rand获取随机数的操作

    这篇文章主要介绍了SQLServer 使用rand获取随机数的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • SQL Server删除表及删除表中数据的方法

    SQL Server删除表及删除表中数据的方法

    本文介绍SQL Server中如何删除表,如何删除表中的数据。在删除表数据时有delete和truncate两种方法,delete和truncate有什么区别呢
    2016-04-04

最新评论