日期:2014-05-17  浏览次数:20458 次

在线等!!!!!问个存储过程调用的问题
问题1:请问存储过程是怎么调用函数的啊?

问题2:还有函数怎么调用存储过程啊?

问题3:好像没见过函数调用存储过程啊?

问题4:是不是函数只能return一个值啊?即返回一个值。存储过程只能return INT型的值,不能return varchar这样类型啊

------解决方案--------------------
前三个问题不知LZ什么意思?如果是函数体或存储过程体内部调用的话,那和普通调用没有什么区别的。
普通的COUNT()什么的就是函数,在存储过程里面都是可以调用的。但是函数调用存储过程本人没这么写过,但是应该可以。
问题4:函数只能return一个值,但是可以返回一个表作为结果的。
存储过程的OUTPUT可以是其他类型,不一定非要是INT
------解决方案--------------------
函数只能调用系统存储过程,不能调用用户定义的存储过程。
------解决方案--------------------
1、 一楼已经说了
2、函数里面可以调用函数和某些扩展存储过程,具体你了解一下函数的 execute as 选项
4、你说的标量值函数,只能return一个值,还有表值函数,后者是返回一个table
sp 还可以使用output 来返回值,可以使其它类型的
如果用于存储过程,RETURN 不能返回 null 值。如果某个过程试图返回空值(例如,使用 RETURN @status,而 @status 为 NULL),则将生成警告消息并返回 0 值。