CTE大部分地方可以代替临时表。CTE可以完成递归才是最重要的。

解决方案 »

  1.   

    参考:
    数据库中临时表、表变量和CTE使用优劣对比
      

  2.   

    CET后面必须出现增删改查的语句,临时表不一定
      

  3.   

    CTE只是作为公用表达式,并不是一个实体表,在实际运用中,它的递归作用非常有用。
      

  4.   

    建议读读SQL SERVER 技术内幕 T-SQL程序设计
      

  5.   

    CTE最优秀的地方是在实现递归操作,和替代绝大部分游标的功能,但是对于大数据量,由于cte不能建索引,所以明显比临时表差。我给开发的建议是少于1万数据的话,cte和表变量就不要用于做暂存数据的功能。而改用临时表。
      

  6.   

     CTE后面必须直接跟使用CTE的SQL语句(如select、insert、update等),否则,CTE将失效。但是临时表一直存在,除非drop掉。
      

  7.   

    数据量大时,CTE的性能要币临时表差很多(即使临时表不建索引)