使用存储过程作为函数

时间:2012-10-08 11:27:34

标签: c# sql stored-procedures

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

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

这是代码:

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列的表(例如)

3 个答案:

答案 0 :(得分: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.... 

答案 1 :(得分:1)

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

你可以这样做,但是列序列不在控制之中

--INSERT...EXECUTE procedure example
 INSERT @temptable EXECUTE proceudrename

答案 2 :(得分:-1)

试试这个

开始交易

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

插入@tmp exec my_store_proc 1,111

从@tmp

中选择*

提交交易