Common Table Expressions
Esta es una
característica de SQL Server se vio por primera vez en la versión 2005 y debo
confesar que no es de mis favoritas, su ventaja principal es ofrecer mayor
legibilidad a las consulta y por supuesto una facilidad en el mantenimiento de
las mismas. .
característica de SQL Server se vio por primera vez en la versión 2005 y debo
confesar que no es de mis favoritas, su ventaja principal es ofrecer mayor
legibilidad a las consulta y por supuesto una facilidad en el mantenimiento de
las mismas. .
CTE me permite cargar
a memoria una consulta o query, darle un nombre para utilizarlo inmediatamente
dentro del mismo bach de instrucciones, no queda almacenado como lo hace una
vista, función o procedimiento almacenado, es solo de uso temporal, dentro del
bach (conjunto) de instrucciones SQL .
a memoria una consulta o query, darle un nombre para utilizarlo inmediatamente
dentro del mismo bach de instrucciones, no queda almacenado como lo hace una
vista, función o procedimiento almacenado, es solo de uso temporal, dentro del
bach (conjunto) de instrucciones SQL .
Ejemplo:
—CTE Common Table Expression
WITH CTE_ORDENES as ( Select c.companyname, o.orderid,
o.orderdate, year(o.orderdate) as año,
month(o.orderdate) as mes
from customers c inner join orders o
on c.CustomerID=o.CustomerID)
|
CREACIÓN DEL CTE
|
Select companyname, orderid from CTE_ORDENES
where año=1997 and mes=6
go
|
USO
DEL CTE
|
Explicación:
Que diferencias existe con las tablas temporales (#Tabla), yo hace años que utilizo esas tablas para procesos complejos o con mucha información para generar tablas agrupadas y sumarizadas.
En mi punto de vista es mas eficiente las tablas temporales que usas, las common table expressions son para correr querys en memoria y poder asignarles un nombre dentro del query pero no quedan almacenados en ninguna parte por un determinado tiempo como las tablas temporales.