首页 > 解决方案 > ASP.NET:使用#temp 表存储会话以在其上运行其他存储过程

问题描述

我一直在做的项目可以分解成两个不同的存储过程。

  1. 第一个存储过程:是将几个表连接在一起成为一个临时表。
  2. 第二个存储过程:这个sp是根据一个有CRUD的表的内容来编辑/编写的,它适用于第一个存储过程中生成的临时表。

我正在尝试执行第一个存储过程并将临时表存储在会话中,然后手动运行第二个存储过程获取另一个使用的表。

-编辑-

SP1 通过连接许多表需要大约 30 秒来设置临时表,我想将 SP1 中的临时表不仅用于 SP2,还用于许多不同的 SP。

我不确定这是否可能?

标签: c#asp.netsql-server

解决方案


不,这是不可能的,因为本地临时表仅适用于当前会话。

您可以创建本地和全局临时表。本地临时表仅在当前会话中可见,全局临时表对所有会话可见 [来源:MSDN]

如果您尝试为 Web 应用程序创建它,我建议您创建存储过程(它包装了两个存储过程的执行),并且临时表的创建应该在外部存储过程中。然后它将可用于从此过程调用的两个存储过程。

使用全局临时表也不是一个可靠的解决方案。


推荐阅读