日期:2014-05-17  浏览次数:20702 次

CTE与临时表的区别
想知道他们的区别。

------解决方案--------------------
CTE大部分地方可以代替临时表。CTE可以完成递归才是最重要的。
------解决方案--------------------
参考:
数据库中临时表、表变量和CTE使用优劣对比
------解决方案--------------------
CET后面必须出现增删改查的语句,临时表不一定


------解决方案--------------------
CTE只是作为公用表达式,并不是一个实体表,在实际运用中,它的递归作用非常有用。
------解决方案--------------------
建议读读SQL SERVER 技术内幕 T-SQL程序设计
------解决方案--------------------
CTE最优秀的地方是在实现递归操作,和替代绝大部分游标的功能,但是对于大数据量,由于cte不能建索引,所以明显比临时表差。我给开发的建议是少于1万数据的话,cte和表变量就不要用于做暂存数据的功能。而改用临时表。
------解决方案--------------------
CTE后面必须直接跟使用CTE的SQL语句(如select、insert、update等),否则,CTE将失效。但是临时表一直存在,除非drop掉。