MS SQL临时表

4

我想知道这两个脚本之间有什么区别?

SELECT * FROM ##TEMP

并且这个

SELECT * FROM #TEMP

在你提问之前,请先谷歌一下。https://dev59.com/EHE95IYBdhLWcg3wp_kg - user2763765
3个回答

10

##TEMP 是全局临时表,#TEMP 是本地临时表。

本地临时表 仅在创建它们的相同连接到 SQL Server 实例的创建者可见,或在首次创建或引用表时。用户断开与 SQL Server 实例的连接后,本地临时表将被删除。

全局临时表 在创建后对任何用户和任何连接都可见,并在所有引用表的用户断开与 SQL Server 实例的连接时被删除。

请参见 文档

实际上这里有一个几乎相同的问题和答案 - SQL Server 中的本地和全局临时表


@dave添加了一些解释,请查看非常相似的问题链接。 - Roman Pekar

1

第一个变量(##TEMP)是全局的 - 任何人都可以访问它的内容,而且您可以从不同的会话中访问它(可以将其视为SQL Server Management Studio中的选项卡)。而另一个变量仅由您可见。


1

##是全局表,可供所有人看到,当引用它们的所有连接关闭时将被删除。

#是本地表,仅对创建它的连接可见,并在该连接断开后被删除。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接