转载 sql 存储过程与函数区别
SQL Server用户自定义函数和存储过程有类似的功能,都可以创建捆绑SQL语句,存储在server中供以后使用。这样能够极大地提高工作效率,通过以下的各种做法可以减少编程所需的时间:
乍看之下,用户自定义函数和存储过程的功能似乎一摸一样。但是,其实这两者之间还有一些虽然细微但是很重要的差异:
???? 用户自定义函数是有返回值的过程,表格返回值是要通过表变量来处理返回的过程。 ???? ???? 存储过程: ????? 它们可以接受参数、输出参数、返回单个或多个结果集以及返回值 ??????????? 1、可以在单个存储过程中执行一系列 SQL 语句。??????????? 2、可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。 ??????????? 3、存储过程在创建时即在服务器上进行编译,所以执行起来比单个 SQL 语句快。 ??? ???? 用户自定义函数: ???? 与任何函数一样,用户定义函数是可返回值的例程。根据所返回值的类型,每个用户定义函数可分成以下三个类别: ??????????? 1、返回可更新数据表的函数:如果用户定义函数包含单个 Select 语句且该语句可更新,则该函数返回的表格格式结果也可以更新。 ?????????? ?2、返回不可更新数据表的函数:如果用户定义函数包含不止一个 Select 语句,或包含一个不可更新的 Select 语句,则该函数返回的表格格式结果也不可更新。 ??????????? 3、返回标量值的函数:用户定义函数可以返回标量值。 ???? ??????????? 存储过程?????????????? 1. 功能强大,限制少?????????? 2. 不能直接引用返回值?????????? 3. 用select语句返回记录集 ?????????? 自定义函数 ?????????? 1. 诸多限制,有许多语句不能使用,许多功能不能实现?????????? 2. 可以直接引用返回值?????????? 3. 用表变量返回记录集 原文:http://www.cnblogs.com/snowhumen/archive/2012/07/02/2573502.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |