TO wutao411 和 阿来:
临时表事先存在,字段顺序也对应。已确认问题出在语句"insert into exec 一个带有insert into的过程名" ,会提示出错,说insert into exec 不能嵌套。
TO 小黑:
您说的把Procedure改为函数的方法应该具有通用性,凡是这类的问题都可以照此办理。比如这样的问题:
PROC_1调用PROC_2,PROC_2调用PROC_3,PROC_3调用PROC_4,PROC_4调用PROC_5,
PROC_5返回些行集给PROC_4,PROC_4返回些行集给PROC_3,PROC_3返回些行集给PROC_2,PROC_2返回些行集给PROC_1,从而得到最后的结果。假如用这样的方法:
在PROC_1中写:insert into #TEMP1 exec PROC_2
在PROC_2中写:insert into #TEMP2 exec PROC_3
在PROC_3中写:insert into #TEMP3 exec PROC_4
在PROC_4中写:insert into #TEMP4 exec PROC_5
就会出现楼顶提出的错误了(假设那些临时表都已存在)。而改用小黑说的写出成function的方法:
在func_1中写:insert into #TEMP1 select * from func_2()
在func_2中写:insert into #TEMP2 select * from func_3()
在func_3中写:insert into #TEMP3 select * from func_4()
在func_4中写:insert into #TEMP4 select * from func_5()
就成。
之前解决这个问题,我是用建立全局临时表##TEMP???? 的方法,感觉不爽才提这个问题的。