是否可以将存储过程的多个结果集设置为临时表变量?

我写了一个存储过程,

Create proc test1
(
 @param1 int,
 @param2 int
)
as
Begin
     Select Id, Name from Table1 where column1=@param1;
     Select Id, Age, Address from Table2 where column1=@param2;
End

当我执行此sp时,它将返回2个表(记录集)。

现在,我想将此2个记录集设置为2个临时表变量。

我怎样才能做到这一点?

#1楼 票数:1

我不认为存储过程可以像您希望的那样返回多个结果集。 我可能建议的是让存储的proc将结果存储在两个全局临时表中,然后让调用过程(无论调用存储的proc如何)查询两个全局临时表并将结果放入您的临时表变量中。

#2楼 票数:0

我知道这是一个老问题,也许我会误解您想要的内容,但是如果您只想将这两个记录集放入临时表中,则不能这样做:

Create proc test1
(
 @param1 int,
 @param2 int
)
as
Begin
     Select Id, Name 
          into #temp1
          from Table1 where column1=@param1;
     Select Id, Age, Address 
          into #temp2
          from Table2 where column1=@param2;
End

现在,我不知道您要如何实现此目标,但是根据您如何调用该sp,可能无法从sp外部访问#temp表。

  ask by Manikandan Sethuraju translate from so

未解决问题?本站智能推荐:

1回复

将记录(存储过程的结果)插入到临时表中

看到了这个问题的不同链接,但是找不到我所需要的链接。 我有一个临时表,我想用存储过程返回的结果来填充。 存储过程返回多个列,我必须插入特定的列 我试过了, 所有这些代码都驻留在另一个存储过程中。 这给了我错误 Column name or number of supp
2回复

如何从存储过程插入到临时表

我有以下两个过程 1)PROC_A在执行时会给出两个表,例如Table1和Table2 2)在PROC_B中,我需要将通过执行PROC_A返回的表1的内容插入到PROC_B内部的一个临时表中,TABLE1的列可能会更改 我正在PROC_B中尝试类似的操作 我该怎么办?
1回复

如何从存储过程中将多个输出捕获到临时表中

我的存储过程返回两个输出。 我想在另一个存储过程中使用其中一个。 所以试图在临时表中获取第二个输出。 但由于两个输出的结构不同,因此我总是得到“列名或提供的值的数量与表定义不匹配”。 即使我改变输出的顺序(第一个输出第二个和第二个输出第一个),它也不起作用。 我正在建立一个全新
1回复

如何将数据从存储过程与输出参数存储到临时表?

我有一个存储过程,可以通过设置多个输出参数来返回结果。 我要将这些输出参数值存储到临时表中,该怎么办?
1回复

如何在不创建临时表的情况下将存储过程结果集放入临时表?

这个问题已经在这里有了答案: 将存储过程的结果插入临时表中 28回答 如何将存储过程结果集放入临时表而不创建临时表。 我也没有使用Openrowset命令。请帮助。我想要这样
1回复

由于动态SQL,使用全局临时表的存储过程

当前,我们有一个查询来预测直接借记产品的收入。 该查询使用与临时表相对的永久表,因为查询使用动态SQL,并且在该动态SQL执行范围之外看不到临时表。 我要做的是使用全局临时表将它们放入存储过程中,以解决临时表的超出范围的问题。 我的问题是,一旦存储过程像普通的临时表一样运行,它们是否永
2回复

使用SQL临时表的速度与存储过程中的较长变量列表

我有一个存储过程,其中包含约50个不同类型的变量的列表,这些变量作为不同组的一部分(声明,初始化,加载,计算,结果等)重复了大约8次。 为了避免重复,我想改用临时表(不是表变量,它不会带来我所追求的优势-推断类型)。 我已经读过,临时表可能从“在内存表中”开始,然后随着它们的增长而溢