存储过程pro_A返回一个表集合TableA,在存储过程pro_B中以TableA为数据源再做一重过滤,想实现代码复用,因此原意是在存储过程pro_B中调用存储过程pro_A,但事实发现我们不能写成select * from (exec pro_A para1,para2) a ;虽然返回结果是表集合。
后来想执行存储过程返回一个output表变量,就像一般变量一样,但存储过程可不支持这种写法;想到最后只能将pro_A 的内容写在一个函数中fn_A,函数支持返回表,可以写成select * from fn_A (para1,para2);