[MSSQL] CTE V @TABLE V #TABLE V ##TABLE

生命周期: CTE


CTE: 可视为暂存检视表 , 仅存于同一T-SQL批次, 执行完即失效


WITH SUM AS (SELECT SUM=SUM(QTY) FROM SAP_WO_LIST),
	CET AS (SELECT WO,QTY,SUM FROM SAP_WO_LIST, SUM)
SELECT * FROM CET

@TABLE: 暂存于内存, 执行完即失效, 不需要DROP, 无事务纪录且不可建索引, 因此笔数小于100比较适合使用


DECLARE @TABLE TABLE (C1 VARCHAR(50), C2 VARCHAR(50), C3 VARCHAR(50))

#TABLE: 暂存于tempdb, 于Session结束才失效, 否则需要DROP, 有事务纪录, 可建索引


CREATE TABLE #TABLE (C1 VARCHAR(50), C2 VARCHAR(50), C3 VARCHAR(50))

##TABLE: 暂存于tempdb, 可以被所有Session使用


CREATE TABLE ##TABLE (C1 VARCHAR(50), C2 VARCHAR(50), C3 VARCHAR(50))