SQL Server 中的会话全局临时表

2023-12-03

在 SQL Server 中,名称类似于 #temp 的临时表具有本地作用域。如果您在会话中创建它们,则会话中的所有内容都可以看到它们,但会话外则看不到它们。如果您在存储过程中创建这样的表,则作用域是该过程的本地范围。所以当进程退出时,表就消失了。

我知道的唯一选择是使用名称类似于 ##temp 的表。这些是临时的,但在服务器范围内可见。因此,如果我在会话中创建表,隔壁办公室的鲍勃也会看到它们。

我正在寻找的是中间的某个地方,因此我可以在存储过程中创建表,并且即使在存储过程退出后也可以让该表可供我的会话使用。我能找到的最接近的方法是创建只有一个字段的表,然后在存储过程中更改它。不过,这似乎有点拼凑。


另一个可能对您有用的杂凑 - 这取决于这里涉及多少个临时表。

将临时表创建为真实表,并添加一个名为 SPID 的额外列,默认为@@SPID.

然后创建一个访问这些表的视图,但根据@@SPID价值。通过此视图进行的所有操作都应该看起来像是在每个会话的基础上隔离的。例如。:

create table temp_Boris (
    SPID int default @@SPID,
    ColA int,
    ColB varchar(10)
)
go
create view vBoris
as
    select ColA,ColB from temp_Boris where SPID = @@SPID
go

然后,在一个连接上运行以下命令:

insert into vBoris(ColA,ColB)
select 10,'abc' union all
select 20,'def'
go
select * from vBoris

在另一个连接上,运行以下命令:

insert into vBoris(ColA,ColB)
select 10,'abc' union all
select 20,'def'
go
select * from vBoris
select * from temp_Boris
go
delete from vBoris
go
select * from vBoris
select * from temp_Boris

您将看到每个连接都能够将“vBoris”视为临时表 - 当然,您可能需要围绕此添加其他例程(可能还有更多列)以清除表中的旧/过时结果。

好吧,我承认,感觉也很丑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 中的会话全局临时表 的相关文章

  • SQL:比较不同表中的两个计数

    我有 3 张桌子 一张桌子上有世界上每个国家及其代币 NAME CODE Afghanistan AFG Albania AL Algeria DZ American Samoa AMSA Andorra AND Angola ANG An
  • 如何在没有 EF 的 ASP.NET MVC 中使用普通 sql?

    我有一个使用 linq to sql 的类 如何在 ASP NET MVC 3 中使用普通 sql 而不使用 EF 来实现相同的功能 public ActionResult Index var List from c in db OFFIC
  • Oracle:如何查找模式中上次更新(任何表)的时间戳?

    有一个Oracle数据库模式 数据很小 但仍然有10 15个表左右 它包含一种配置 路由表 有一个应用程序必须不时轮询此架构 不得使用通知 如果架构中没有数据更新 应用程序应使用其当前的内存版本 如果任何表有任何更新 应用程序应将所有表重新
  • 在SQL Server中仅获取浮点数的小数部分[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我在 SQL Server 2008
  • 整理有关 QueryDSL-JPA 的提示

    有没有办法用 QueryDSL 来执行它 粗体部分 从地点选择 其中名称如 cafe 整理 Latin1 general CI AI 我将 JPA 与 hibernate 一起使用 您可以使用addFlag QueryFlag Positi
  • 仅当变量不为空时 SQL 添加过滤器

    您好 我有疑问如下 SELECT route id ROUTE ID FROM route master NOLOCK WHERE route ou 2 AND route query l s query AND lang id 1 这里
  • 显示过去 7 天 PHP 的结果

    我想做的是显示过去 30 天的文章 但我现有的代码不断给我一个 mysql fetch assoc 错误 然后追溯到我的查询 这是代码 sql mysql query SELECT FROM table WHERE DATE datetim
  • 在单个更新语句上使用事务

    我在工作中为一些 SP 配音 我发现编写代码的人在单个更新语句上使用了事务 如下所示 begin transaction single update statment update table whatever with whatever
  • 是否可以使用“WHERE”子句来选择SQL语句中的所有记录?

    晚上好 我很好奇是否可以在 SQL 语句中创建一个 WHERE 子句来显示所有记录 下面一些解释 随机 SQL 语句 Java JSP示例 正常情况 String SqlStatement SELECT FROM table example
  • SQL Server PIVOT 函数

    我有一个检索所有代理及其模块的查询 结果集将每个模块返回 1 行 SELECT am agentID AS agentid pa agentDisplayName agentdisplayname m ModuleName ModuleNa
  • sql server GO 相当于 oracle

    我正在为 Oracle 编写迁移脚本 我需要更改表结构 然后用数据填充它 我想先进行结构更改 然后再进行数据更改 在 SQL Server 中我会使用GO分离批次 是否有 SQL ServerGOOracle 中的等效命令 It s and
  • 从数据库配置中的连接字符串中删除 SSIS 密码

    我有一个 SSIS 包 它使用 SQL 服务器中的 SSIS 配置表来检索 OLE DB 连接管理器的连接字符串属性 问题是我还需要相同的连接字符串来调用使用实体框架的程序集 我尝试访问连接管理器连接字符串属性 但 SSIS 总是删除密码
  • 如何将自定义类型数组传递给 Postgres 函数

    我有一个自定义类型 CREATE TYPE mytype as id uuid amount numeric 13 4 我想将它传递给具有以下签名的函数 CREATE FUNCTION myschema myfunction id uuid
  • PreparedStatement setnull方法中Types.INTEGER和Types.NULL的区别

    下面的说法有什么区别 PreparedStatement setNull 1 java sql Types NULL and PreparedStatement setNull 1 java sql Types INTEGER 第一个指示驱
  • SQL Server 查询结果集的大小

    SQL Server 中是否有确定结果集中 Mgmt Studio 查询中返回的数据大小 以 MEGS 为单位 您可以打开客户端统计信息 查询菜单 包括客户端统计信息 它给出执行查询时从服务器返回的字节数
  • 使用MySQL计算单个表中借方和贷方的余额

    下面的 MySQL 表包含带有关联金额的借方或贷方 操作 如何选择具有非零 余额 的所有 CLIENT ID 我尝试将表连接到自身以计算所有借方和贷方总额 但有些东西无法正常工作 CLIENT ID ACTION TYPE ACTION A
  • SQL Server 使用通配符加入并在第一个匹配处停止

    IF OBJECT ID tempdb TABLE1 IS NOT NULL DROP TABLE TABLE1 IF OBJECT ID tempdb TABLE2 IS NOT NULL DROP TABLE TABLE2 CREATE
  • SQL Server Express 到 .mdf 文件的连接

    两部分问题 我使用 VS 2015 Update 3 创建了一个 ASP NET MVC 5 应用程序 我在本地计算机上完成了该项目 突然 我无法再通过 SQL Server 对象资源管理器连接到 mdf数据库文件并出现以下错误 无法打开数
  • 将多行合并为一行并根据行数附加列

    我正在尝试将同一个表的多行合并为一个 我有一个像这样的示例表 Col1 Col2 Col3 Col4 Col5 Col6 1 BH1 CB 12 CC CC Conveyor Mal 1 BH1 CB 104 ZC ZC Full Emp
  • Yii 查询时对相关模型的限制

    我遇到了极限问题 我正在使用的代码如下 model PostCategory model record model gt with array posts gt array order gt posts createTime DESC li

随机推荐

  • A 类声明多个 JSON 字段

    我有一个类 A 它有一些私有字段 同一个类扩展了另一个类 B 它也有一些类 A 中的私有字段 public class A extends B private BigDecimal netAmountTcy private BigDecim
  • R - 传单 - highcharter 工具提示

    我想包括一个highcharter情节在我的leaflet弹出窗口 在来自的帮助下this帖子我能够包括sparkline阴谋 但是 由于我缺乏 html 技能 我不知道如何修改代码来使用highcharter 这个答案关于SO 答案中的示
  • Logstash 5.1.1“错误的 URI(不是 URI?)”

    Error c Program Files Logstash bin gt logstash bat e 输入 stdin 输出 stdout 发生意外错误 错误 gt 错误的 URI 不是URI File c Program Files
  • MongoDB 全文搜索,两个字段自动完成

    我正在尝试实施MongoDB 图集搜索 目标是在 2 个字段上自动完成 我目前有这个实现 const searchStep search Read more about compound here https docs atlas mong
  • PDFbox 找不到字体:/Helv

    我尝试将表单字段添加到现有 PDF 文件 但出现以下错误PDFbox Could not find font Helv 我的 Java 代码具有以下视图 PDDocument pdf PDDocument load inputStream
  • 我该如何处理这样的物体

    我需要以表格形式显示错误 如果子级中定义了错误 则可以将错误附加到输入名称表单中 这是常见情况 1 但可能会发生错误是在 json 对象的根节点中定义的 2 在这种情况下 应将其附加到 formElement 以下代码 3 适用于情况 1
  • C2DM 服务器。我们现在应该使用 OAuth 吗?

    我正在为我的 Android 应用程序实现 C2DM 客户端 Android 进展顺利 但我对实现服务器端有点困惑 我的服务器是C NET 官方文档链接到 404 当涉及到身份验证时 https developers google com
  • 类型不匹配错误。 F# 类型推断失败?

    我正在尝试在 F 中编写一个方法 该方法根据传递到该方法的值的类型返回泛型类型的新实例 在金融服务指数中 open System Collections Generic type AttributeIndex lt a gt inherit
  • 在 C++ 中获取准确的执行时间(微秒)

    我想获得用 C 实现的程序的精确执行时间 以微秒为单位 我尝试使用clock t获取执行时间 但它不准确 请注意 微基准测试是hard 准确的计时器只是短时间区域获得有意义的结果所需的一小部分 看绩效评估的惯用方式 一些更一般的注意事项 如
  • 通过 EnvDTE 以编程方式更改 Visual Studio 项目的调试属性

    是否可以通过 EnvDTE 类以编程方式更改调试部分中的项目属性 我知道如何获取 DTE 实例并使用某些设置 但我是盲目的 或者调试部分无法访问 我从这里开始http msdn microsoft com en us library env
  • 是否可以使用 PHP 或 Apache 从客户端获取网络域?

    我正在研究一种解决方案来识别专用网络中的客户端网络域或工作组 基于此 我必须更改一些访问权限 我无法通过 IP 地址做到这一点 因为它不可信 只能通过网络域 工作组 由于我不知道的原因 我无法登录屏幕 访问必须是自动且无缝的 有人知道我该怎
  • “with”语句中变量的范围?

    我只读书firstline从 python 使用 with open file path r as f my count f readline print my count 我对变量 my count 的范围有点困惑 虽然打印效果很好 但是
  • Java 中字节移位的奇怪行为

    当我使用位移位时byte 我注意到使用无符号右移时得到了奇怪的结果 gt gt gt With int 均右移 符号 gt gt 和未签名 gt gt gt 表现如预期 int min1 Integer MIN VALUE gt gt 31
  • GWT uibinder 自动更正关闭

    我使用 GWT uibinder 方法 我的 html 包含一个文本框 例如
  • 如何使用 AngularJS 模板渲染 html

    这是我的模板 div class span12 div
  • 查找前面没有其他字符串的字符串

    我只想得到 bar here gt gt gt re findall r
  • Google Cloud Messaging,从客户端创建通知密钥时返回 401 Unauthorized

    我按照上面的例子https developer android com google gcm notifications html gen client尝试从客户端创建通知密钥 getAccounts 方法确实返回了一个有效的谷歌帐户 Go
  • 如何在 JSON 字符串反序列化期间忽略数组项

    这似乎很简单 但我就是不知道该怎么做 我使用外部 api 来获取 JSON 结果 使用 Newtonsoft JSON 问题是一个糟糕的设计 这给我留下了一个具有混合类型的数组 如下所示 data Monday 13 january id
  • 寻找 UTF-8 文本编辑器

    我正在寻找一个 简单的 文本编辑器 可以处理同一文档中不同编码的文本 我需要开发一些日语和英语混合文本的网站 而我现在的编辑器 在英语 Windows 系统上 无法显示日语文本 Jedit 文件不显示我输入的日语文本 但当我在浏览器中查看该
  • SQL Server 中的会话全局临时表

    在 SQL Server 中 名称类似于 temp 的临时表具有本地作用域 如果您在会话中创建它们 则会话中的所有内容都可以看到它们 但会话外则看不到它们 如果您在存储过程中创建这样的表 则作用域是该过程的本地范围 所以当进程退出时 表就消