我需要将存储过程结果存储在临时表中。但是存储过程结果可能是任何列排序中的任何表。
是否有一个通用表(没有指定列)我们可以将任何表插入其中? 我知道我可以使用函数但是可以使用存储过程吗?
这是代码:
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列的表(例如)
答案 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
中选择*提交交易