-1

我需要将存储过程结果存储在临时表中。但是存储过程的结果可能是任何表中的任何列排序。

是否有一个通用表(未指定列),我们可以将任何表插入其中?我知道我可以使用函数,但可以使用存储过程吗?

这是代码:

begin transaction

create table temp_table as

exec my_store_proc 1,111

select * from temp_table

drop table temp_table

commit transaction

在上面的代码中,my_store_proc结果是一个有 6 列的表(例如)

4

3 回答 3

2

你可以使用这样的方法。

declare @t table(ID int, Name nvarchar(max), AnotherId int)

insert @t
exec theStoredProc

-- then you can utilize the result in a join

select * from SomeTable inner join @t as t on SomeTable.ID =  t.ID.... 
于 2012-10-08T11:57:50.417 回答
1

最好只使用 tiwth 功能,因为使用 procecure 是不可能的。创建具有返回类型表的函数并使用它可以正常工作。

你可以这样做,但列顺序不受控制

--INSERT...EXECUTE procedure example
 INSERT @temptable EXECUTE proceudrename
于 2012-10-08T11:29:26.617 回答
-1

试试这个

开始交易

创建表@tmp(您的字段在 my_store_proc 过程中定义)

插入@tmp exec my_store_proc 1,111

从@tmp 中选择 *

提交事务

于 2012-10-08T13:07:10.677 回答