访问TSQL从CLR存储过程创建了#temp表。可能吗?

时间:2009-04-10 18:19:08

标签: tsql sqlclr temp-tables

  1. 我有一个TSQL存储过程 tsql__sp__A ,它做了两件事:
  2. (a)创建一个临时表 #tempTable ,它具有来自复杂SELECT查询的SELECT数据。

    (b)为对行参数进行计算的每一行调用CLR管理的存储过程 clr__sp__B

    问题:是否可以使用相同的连接上下文从CLR过程 clr__sp__B 访问 #tempTable ? (不,我不想在托管程序中移动或创建另一个 #tempTable

    感谢。

2 个答案:

答案 0 :(得分:2)

谢谢Boj。

但是我发现当你使用“context connections = true”时,它会打开所有的SET

Read Bol Article

//上下文连接允许您在与首先调用代码相同的上下文中执行SQL语句//

using (SqlConnection connection = new SqlConnection("context connection=true"))
{
    connection.Open();
    // access #temp table
}

答案 1 :(得分:0)

我们可以在SQL中定义两种类型的临时表。

  • 本地
  • 全球

关于本地临时表:

  

当表格前面有单个“#”符号时,它被定义为本地临时表,其范围仅限于创建它的会话。

关于全球临时表:

  

与本地临时表相比,整个实例可以看到全局临时表。

因此,您可以尝试使用“##”来创建全局临时表。 (如果“连接上下文”和“会话”之间存在差异