Globle临时表的明确目的是什么?



我已经参考了全局临时表的文档,但不了解临时表的明确用途。

这是我引用的网址:https://www.c-sharpcorner.com/UploadFile/97fc7a/local-and-global-temporary-tables-in-sql-server-2008/

谁能帮我了解全局表以及本地和全局临时表之间的区别?何时使用全局临时表与本地临时表?他们有特殊目的吗?

临时表和全局临时表之间的区别在于它们的作用域。这在您链接的文章中进行了描述;临时表仅在创建临时表的存储过程或会话中可见,并在该作用域终止时销毁。全局临时表可从任何地方使用,当没有会话不再引用它们时,它们将被销毁。

我对全局临时表最常见的用法是使用动态 SQL。由于动态 SQL 的执行范围与定义它的查询(通过sp_executesql(不同,因此它无法从动态 SQL 中访问调用 SQL 中的临时表。

相反,我声明了一个全局临时表,然后从动态SQL中访问它。这通常是在一次从多个数据库收集数据的上下文中,使用游标遍历所有数据库并插入到全局临时表中。

在声明期间具有单个 # 的本地临时表仅对创建它的会话/连接可见。全局临时表(带有 2 个 ##(对所有会话和连接可见。

如果打开 SSMS,打开两个查询窗口,创建每种类型的表,然后尝试从每个窗口查询它们,则可以看到此操作。

相关内容

  • 没有找到相关文章

最新更新