与存储过程相比,函数有哪些优势/环境?想要证明函数的使用是正确的。似乎存储过程在各个方面都受益于事务处理、输入、多个值,以及插入into...exec。那么,什么时候才是应用函数而不是sps的理想情况呢?这不是一个基于意见的问题或建议,也不是一直要求使用sps,只是想看到功能的好处。

我知道第5条是功能优势,但是在链式机中有很多方法可以解决这个问题。
发布于 2019-03-03 20:00:20
通过快速搜索,我发现了下面的文章
关于udf对sps的好处:
过程允许SELECT以及DML(INSERT/UPDATE/DELETE)语句,而函数只允许其中的SELECT语句。
您可以通过这个函数将查询的使用限制为select状态。
过程不能在SELECT语句中使用,而函数可以嵌入SELECT语句中。存储过程不能在SQL语句中的WHERE/WHERE/SELECT部分中的任何位置使用,而函数可以使用。
这可能会对查询加载产生影响,因为对于返回的每一行,它都将执行您的udf。
返回表的函数可以视为另一个行集。这可以用于与其他表的联接。内联函数可以被认为是接受参数的视图,可以用于联接和其他Rowset操作。
在我看来,这确实是一个相关用例的问题。您可以在需要操作每行数据时使用函数,或者当您希望对具有运行DML查询权限的用户安全地运行DML查询时使用该函数。
https://dba.stackexchange.com/questions/231185
复制相似问题