我想知道,这两个脚本有什么区别?
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 中的选项卡)。另一个只有你可见。
##
是对所有人可见的全局表,并在所有引用它们的连接关闭时被删除。
#
是本地表,仅对创建它的连接可见,并且在该连接断开后被删除。