- 我有一个 TSQL 存储过程tsql__sp__A它做两件事:
(a) 创建一个临时表#tempTable,其中包含来自复杂 SELECT 查询的 SELECT 数据。
(b) 为对行参数进行计算的每一行调用 CLR 管理的存储过程clr__sp__B。
问题:是否可以使用相同的连接上下文从 CLR 过程clr__sp__B访问#tempTable ?(不,我不想在托管过程中移动或创建另一个#tempTable )
谢谢。
(a) 创建一个临时表#tempTable,其中包含来自复杂 SELECT 查询的 SELECT 数据。
(b) 为对行参数进行计算的每一行调用 CLR 管理的存储过程clr__sp__B。
问题:是否可以使用相同的连接上下文从 CLR 过程clr__sp__B访问#tempTable ?(不,我不想在托管过程中移动或创建另一个#tempTable )
谢谢。
谢谢博杰。
但是我发现,当您使用“上下文连接 = true”时,它会打开所有 SET
//上下文连接允许您在最初调用代码的相同上下文中执行 SQL 语句//
using (SqlConnection connection = new SqlConnection("context connection=true"))
{
connection.Open();
// access #temp table
}
我们可以在 SQL 中定义两种类型的临时表。
关于本地临时表:
当表前面有一个“#”号时,它被定义为本地临时表,其范围仅限于创建它的会话。
关于全局临时表:
与本地临时表相比,全局临时表在整个实例中都是可见的。
所以你应该尝试使用“##”来创建一个全局临时表。(如果“连接上下文”和“会话”有区别)