如何将存储过程的结果存到表里面
在不知道 proc_A执行的结果返回哪些字段的情况下,如何将exec proc_A的结果存放到临时表#t里面去呢?
#t是尚未定义的临时表。
------最佳解决方案--------------------此路不通 ,变通下吧.
------其他解决方案--------------------恐怕还得更进一步.
即使你知道存储过程的查询结果,不知道这些结果的数据结构,你仍然不能把它保存到临时表里.
因为,你不知道各个列要用什么数据类型.
------其他解决方案--------------------可以把存储过程改成表值函数 ,效果一样的。
------其他解决方案--------------------一般的写法是先创建临时表#t,然后:
insert into #t
exec 存储过程名
但是你不知道存储过程的列的话,貌似没有办法创建表
------其他解决方案--------------------楼上正解,没有办法使用
EXEC ... INTO #TEMP
只能 Insert into #TEMP exec proc_A
所以先执行Proc_A 看返回结果,假如是系统Proc,联机丛书上使用执行完返回数据堆的结构的。
根据结果建临时表进行插入。
------其他解决方案--------------------坐等大牛
------其他解决方案--------------------
这个改动存储过程,会比较麻烦额...是想把所有存储过程查询出的数据,做一下权限控制,如果是一两个,对应用影响小的话,还可以考虑下。