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