我想知道这两个脚本之间有什么区别?
SELECT * FROM ##TEMP
并且这个
SELECT * FROM #TEMP
我想知道这两个脚本之间有什么区别?
SELECT * FROM ##TEMP
并且这个
SELECT * FROM #TEMP
##TEMP
是全局临时表,#TEMP
是本地临时表。
本地临时表 仅在创建它们的相同连接到 SQL Server 实例的创建者可见,或在首次创建或引用表时。用户断开与 SQL Server 实例的连接后,本地临时表将被删除。
全局临时表 在创建后对任何用户和任何连接都可见,并在所有引用表的用户断开与 SQL Server 实例的连接时被删除。
请参见 文档。
实际上这里有一个几乎相同的问题和答案 - SQL Server 中的本地和全局临时表。
第一个变量(##TEMP)是全局的 - 任何人都可以访问它的内容,而且您可以从不同的会话中访问它(可以将其视为SQL Server Management Studio中的选项卡)。而另一个变量仅由您可见。
##
是全局表,可供所有人看到,当引用它们的所有连接关闭时将被删除。
#
是本地表,仅对创建它的连接可见,并在该连接断开后被删除。