微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自定义函数,存储过程

 自定义函数 有且只有一个返回值,就像普通的函数一样,可以直接在表达式中嵌入调用函数可以随处调用
用户定义函数,它是返回值的已保存的 Transact-sql 例程。用户定义函数不能用于执行一组修改全局数据库状态的操作。

存储过程 可以没有返回值,也可以有任意个输出参数,必须单独调用

存储过程需要单独执行; 存储过程是保存起来的可以接受和返回用户提供的参数的 Transact-sql 语句的集合。 可以创建一个过程供永久使用,或在一个会话中临时使用(局部临时过程),或在所有会话中临时使用(全局临时过程)。 也可以创建在 Microsoft® sql Server™ 启动时自动运行的存储过程。  与系统函数一样,用户定义函数可以从查询中唤醒调用。也可以像存储过程一样,通过 EXECUTE 语句执行。 1.  一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。    2.  对于存储过程来说可以返回参数,而函数只能返回值或者表对象。    3.  存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。    4.  当存储过程和函数被执行的时候,sql Manager会到procedure cache中去取相应的查询语句,如果在procedure cache里没有相应的查询语句,sql Manager就会对存储过程和函数进行编译。    Procedure cache中保存的是执行计划 (execution plan) ,当编译好之后就执行procedure cache中的execution plan,之后sql SERVER会根据每个execution plan的实际情况来考虑是否要在cache中保存这个plan,评判的标准一个是这个execution plan可能被使用的频率;其次是生成这个plan的代价,也就是编译的耗时。保存在cache中的plan在下次执行时就不用再编译了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐