您的位置:首页 > 其它

函数和存储过程的区别

2012-08-09 22:37 239 查看
今天中午扯淡的时候,同事扯到了 Function 和 Stored Procedure 的区别。后来我又度娘了一把,发现那些个答案有些坑爹,故此Mark一把。

1. Function 执行完成之后一定会结果返回,而且仅有一个返回值;Stored Procedure 既可以有返回值也可以没有,完全取决于Developer 自己,而且它的返回结果也是自定的

2. Function 的调用可以出现在 select,update 甚至是 where 子句中,非常灵活,例如:sum(), count(), avg();Stored Procedure 则不支持这样使用,它有固定的调用执行方法:
exec [Procedure Name](args);
3. Function 主要是用来定义计算逻辑,天生为计算而生;Stored Procedure 就高级多了,主要为业务逻辑服务,它可以帮我们完成单个SQL语句完成不了的事情,比如同时对多个相互没有依赖关系的表的操作

4. Function 方法体内不能含有数据库操作语言(DML),例如:insert, delete, update, select

5. Stored Procedure 预编译的,Function 则不是。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: