2

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

我写了一个存储过程,例如,

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 个临时表变量。

我怎样才能做到这一点?

4

2 回答 2

1

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

于 2012-09-17T12:44:55.870 回答
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,#temp 表可能无法从 sp 外部访问。

于 2013-02-22T21:16:57.330 回答