SQL - 将存储过程多个记录集获取到临时表变量

时间:2012-09-17 12:42:41

标签: sql-server-2008

是否可以将存储过程多个结果集获取到临时表变量?

我写了一个像

这样的存储过程
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 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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外部访问。