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

  • 2004
  • 0

生命週期: CTE < @TABLE < #TABLE < ##TABLE

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))