全局临时表 - SQL Server 与 Oracle

2023-12-14

我使用 Oracle 11g 全局临时表,因为我需要一个解决方案,可以将行添加到临时表中以进行联接,并且我只希望添加到临时表中以包含 Oracle 连接/会话的行。我在 Oracle 中使用全局临时表,因为我希望该表存在于会话之间,这样就不必在每次创建查询时重新创建它。这效果很好。

我的Oracle表定义如下:

CREATE GLOBAL TEMPORARY TABLE book_id_temp 
( 
   book_id RAW(32)
)ON COMMIT DELETE ROWS;

我在 SQL Server 2008-R2 端也有相同的数据库结构,并且需要在 SQL Server 中类似的解决方案。我想要 :

  1. 打开 SQL 连接 (ADO.NET)
  2. 在交易中:
  3. - 将行添加到临时表。
  4. -将它们连接到另一个表上,选择结果
  5. - 仅在此会话期间添加的行包含在联接中。另一个线程可能正在同一个临时表上执行。那么本地临时表可能是最好的选择吗?
  6. 回滚整个事务。

根据我对 SQL Server 中全局临时表的了解,这些表在连接结束后仍然存在,就像常规表和 Oracle 中的全局临时表一样。但目前尚不清楚数据的范围。是否只有创建行的 SQL Server 会话才能访问它,就像在 Oracle 中一样? SQL Server 全局临时表数据的可访问性如何?您有实现我的目标的替代方案建议吗?


Oracle 中的临时表是保存会话本地临时数据的永久对象。 SQL Server 中的临时表是临时对象。

  1. 在 SQL Server 中,全局临时表保存对所有会话可见的数据。 “全局临时表在创建后对任何用户和任何连接都是可见的。”http://msdn.microsoft.com/en-us/library/ms186986.aspx
  2. 全局临时表仍然是临时对象,不会无限期地保留,并且可能需要在使用前创建。 “当引用该表的所有用户与 SQL Server 实例断开连接时,全局临时表...将被删除。”http://msdn.microsoft.com/en-us/library/ms186986.aspx

我发现本地临时表或表变量与Oracle的全局临时表最接近,最大的区别是您每次都必须创建它。

通常,在像您这样的情况下,步骤 3(将行添加到临时表)将通过执行select ... into #temp_table_name ....(相当于甲骨文create table ... as select ...) http://msdn.microsoft.com/en-us/library/ms188029.aspx

另外,您不能在存储过程中执行以下操作:(伪代码。)

begin proc
   call another proc to create local temp table.
   use temp table
end proc

从创建本地临时表的存储过程返回时,本地临时表将被销毁。

2014年10月14日更新:本地临时表的行为在 SQL Server 的并行数据仓库 v 版本中有所不同。临时表在从创建它们的存储过程退出时不会被删除,而是在会话的其余部分继续存在。在以下位置观察到此行为:

select @@version
Microsoft SQL Server 2012 - 10.0.5108.1 (X64) Jun 24 2014 20:17:02 Copyright (c) Microsoft Corporation Parallel Data Warehouse (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

全局临时表 - SQL Server 与 Oracle 的相关文章

随机推荐

  • 具有选择性属性突出显示的语法荧光笔 - VS Addin

    是否有任何 VS 添加用于突出显示整个代码中的特定代码块或属性 谢谢 皮尤什 是的 有件事可以帮助你 视觉辅助X加载项来自http www wholetomato com 它有很多功能 包括突出显示光标下的符号 如果我正确理解你的问题
  • WSDL 或 wsimport 和 wsdl (mono) 都严重损坏

    EDIT我从下面给出的示例开始 但现在我有了 尝试了 W3C 规范中的示例 修复另一个错误后 绑定被称为StockQuoteSoapBinding在一个地方 StockQuoteBinding在另一篇文章中 它给出了同样的问题 尝试过单声道
  • NSArray 等价于 Map

    给定一个NSArray of NSDictionary对象 包含类似的对象和键 是否可以编写执行映射到指定键的数组 例如 在 Ruby 中可以通过以下方式完成 array map name 它只节省了几行 但我在 NSArray 上使用了一
  • 难以理解脚本中的参数替换

    我试图理解 bashscript其前四行是 bin sh SCRIPT basename 0 sed s CONFIG 1 HOME SCRIPT DIR 2 HOME Documents 我知道最后两行正在对作为脚本参数 1 和 2 输入
  • Kivy Apk Buildozer:ReferenceError:弱引用对象不再存在

    谁能告诉我为什么我的应用程序崩溃了 很奇怪的是 当我第一次运行我的应用程序时 它没有崩溃 但下次我运行它时它会崩溃 我得到这样的东西 我正在使用 KIVYMD KIVY SOCKET KIVY MAPVIEW SQLITE3 下面是我通过
  • 将Holoeverywhere添加到Android Studio中的项目中

    我是 Gradle 和 Android Studio 基于 Intellij Idea 的 IDE 的新手 我的问题是纠正导入 Holoeverywhere 到项目 我读了很多类似的主题 但他们没有给出我的问题的解决方案 类似主题 Andr
  • 图像在悬停时移动 - 铬不透明度问题

    我的页面似乎有问题 http www lonewulf eu 当鼠标悬停在缩略图上时 图像会向右移动一点 并且这种情况仅发生在 Chrome 上 My css img ms filter progid DXImageTransform Mi
  • 没有 cookie 的 Laravel 会话

    我有一个应用程序 允许用户登录并将商品添加到购物篮 但是如果用户关闭了 cookie 则此功能将不再起作用 我检查过 Facebook 结果发现他们也需要启用 cookie 才能正常工作 所以我的问题是 是否可以在没有 cookie 的情况
  • 验证 Firebase 键是否为整数

    这是数据库架构 规则如下 notifications year read false write data exists month read false write data exists day read false write dat
  • 仅根据索引计算第 N 个多重集组合(具有重复)

    我怎样才能仅根据它的索引来计算第 N 个组合 应该有 n k 1 k n 1 种重复组合 with n 2 k 5 you get 0 0 0 0 0 0 1 0 0 0 0 1 2 0 0 0 1 1 3 0 0 1 1 1 4 0 1
  • 构建后事件执行 PowerShell

    是否可以使用构建后事件设置 NET 项目来执行 powershell 脚本 我正在使用这个脚本来生成一些文件 我还可以将它是调试版本还是发布版本传递给脚本 举一个这样的例子就太好了 这是一个例子 首先 您必须意识到必须配置 PowerShe
  • 检查卸载前是否保存了更改

    我有以下 JavaScript 编辑 包含更改已保存的分配 var changesSaved true document ready function applyChanges click function e e preventDefau
  • HttpClient 正在发送额外的 cookie

    运行 UWP 应用 所以我有一个 HttpClient 及其关联的处理程序 我正在向网站发出请求 传入指定的标头 并使用指定的 CookieContainer 该 CookieContainer 在请求开始时为空 当我发送请求时 Fiddl
  • 如何抑制Spyder编辑器中的某个警告?

    在我输入该行后 Spyder 中的编辑器总是立即向我发出有关未使用的导入 变量的警告 我想抑制这样的警告 我怎么做 我希望我在 Spyder 编辑器中打开的每个文件都发生这种情况 不喜欢本地修复 我尝试添加 disable pylintrc
  • 设置名称时抛出异常

    我在设置名称时遇到强制转换异常 Object customers customerRepository getCustomerName Id Customer row new Customer row setName String cust
  • 是否可以使用标准库在 Go 中嵌套模板?

    如何在 python 运行时中获取像 Jinja 那样的嵌套模板 TBC 我的意思是如何让一堆模板从基本模板继承 只需归档基本模板块 就像 Jinja django templates 所做的那样 是否可以只使用html template在
  • 如何从 qdateEdit 获取用户输入并从 postgres 的数据库中选择它

    我想知道如何在 QDateEdit 中获取用户输入并在 postgres 的表中选择它 这是我的代码 def date self try date self dateEdit date print date conn psycopg2 co
  • 如何将 std::sort 与结构向量和比较函数一起使用?

    谢谢你的C 中的解决方案 现在我想使用 std sort 和向量在 C 中实现这一点 typedef struct double x double y double alfa pkt vector lt pkt gt wektor 使用pu
  • 如何在R中找到超过10个变量的第二、第三和第n最大行?

    我有一个包含 20 个变量的数据集 我需要使用其中的 10 个变量来查找第一个 第二个 第三个 第 n 个最大值 变量是x1 to x10 x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 1 2 0 3 4 5 6 7 8 5
  • 全局临时表 - SQL Server 与 Oracle

    我使用 Oracle 11g 全局临时表 因为我需要一个解决方案 可以将行添加到临时表中以进行联接 并且我只希望添加到临时表中以包含 Oracle 连接 会话的行 我在 Oracle 中使用全局临时表 因为我希望该表存在于会话之间 这样就不