【实践】临时表和表变量和With as的生命周期

复制代码
--【临时表的生命周期】整个会话中(当前sql页面)
CREATE TABLE TempMain (ID int Identity(1,1), [TempMainNO] INT, Name VARCHAR(3))
INSERT INTO TempMain VALUES(1,'1')

SELECT ID, TempMainNO, Name INTO #Temp FROM TempMain
GO
--Go断开连接后 单独运行下面的select #Temp临时表还是存在的。另外开一个sql页面就自动drop掉了,除非是全局@@temp
SELECT * FROM #Temp
GO
SELECT * FROM #Temp


--【表变量的生命周期】一次连接中(选定的执行语句execute,当然是在一个批处理中的)
--【临时表的生命周期】整个会话中(当前sql页面)
DECLARE @VariableTable TABLE  (ID int Identity(1,1), [VariableTableMainNO] INT, Name VARCHAR(3))
INSERT INTO @VariableTable VALUES(1,'1')

SELECT * FROM @VariableTable
SELECT * FROM @VariableTable --生命存在
GO
--Go断开连接后 单独运行下面的select #Temp临时表还是存在的
SELECT * FROM @VariableTable --不存在
GO
复制代码

 

--WITH AS创建的表的生命周期
WITH CTE(ID ,[TempMainNO], Name) AS (SELECT * FROM TempMain)
SELECT * FROM CTE --存在
SELECT * FROM CTE --不存在, 只能使用一次  

 

posted @   阿玛  阅读(1142)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示