SQL临时表的生存期问题

临时表有两种, local temporary table和global temporary table.

 

Local Temp Table只对当前的session可见. Local Temp Table的名字前面有一个井号(#).

Global Temp Table对所有的session都可见. Globel Temp Table的名字前面有两个井号(##).

 

临时表在超出scope的时候会自动地drop掉, 除非显式地使用DROP TABLE命令.

 

MSDN描述临时表生存期如下:

  • A local temporary table created in a stored procedure is dropped automatically when the stored procedure completes. The table can be referenced by any nested stored procedures executed by the stored procedure that created the table. The table cannot be referenced by the process which called the stored procedure that created the table.
  • All other local temporary tables are dropped automatically at the end of the current session.
  • Global temporary tables are automatically dropped when the session that created the table ends and all other tasks have stopped referencing them. The association between a task and a table is maintained only for the life of a single Transact-SQL statement. This means that a global temporary table is dropped at the completion of the last Transact-SQL statement that was actively referencing the table when the creating session ended.

这篇文章对local temp table做了非常好的说明, 例子很多, 很详细.

http://weblogs.sqlteam.com/mladenp/archive/2006/11/03/17197.aspx

posted on   中道学友  阅读(501)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律

导航

< 2010年9月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9

技术追求准确,态度积极向上

点击右上角即可分享
微信分享提示