我创建了一个存储过程,要求用户指定多个参数。以下脚本返回正确的结果:
Execute dbo.Stored_Procedure_Name
@Ord1 = 1, @Ord2 = 4, @Ord3 = 5, @Ord4 = 6, @Ord5 = 7,
@Table_Name = 'Random_Table_Name'
现在我需要做的就是将结果放入临时表中,因为结果集是设置为运行临时表的更大查询的基础。我在网上找到了很多关于如何做到这一点的例子(包括OPENROWSET
),但是找不到利用需要多个参数的存储过程的东西。其他示例假设用户知道列标题并且可以在运行脚本之前创建表,而我不这样做。
非常感谢您提供的任何指导!
谢谢!
答案 0 :(得分:0)
没有真正好的方法可以将存储过程调用的结果转换为临时表。我要么将您的存储过程转换为表值函数并返回结果集(但如果您不知道要事先返回的表的结构,那么这将无法工作),或者只是让您的存储过程创建临时表本身,并使您的查询仅引用由存储过程创建的临时表。类似的东西:
IF OBJECT_ID('tempdb..#Your_Temp_Table') IS NOT NULL
DROP TABLE #Your_Temp_Table
-- call your SP that will make the temp table #Your_Temp_Table
exec dbo.your_sp
-- use the temp table in the rest of your query
select * from #Your_Temp_Table