我有很多stored procedures
正在制作但没有functions
。
MSDN中的定义是CREATE FUNCTION
。它说:
在SQL Server 2012中创建用户定义的函数。用户定义的函数 function是Transact-SQL或公共语言运行时(CLR)例程 接受参数,执行操作,例如复杂 计算,并将该操作的结果作为值返回。该 返回值可以是标量(单个)值或表。使用 这个语句创建了一个可以在这些中使用的可重用例程 方法:
我的存储过程似乎已经实现了以上所有功能。
当选择function
而不是stored procedure
时,有什么确定的情况?
答案 0 :(得分:3)
如果要将结果集成为较大查询的一部分。
e.g。您可以join
或cross apply
表值函数,并且可以为结果中的每一行计算标量UDF(小心,因为这可能会影响性能)。
对于存储过程,您需要执行它们并将结果捕获到临时表等中,以便能够在更宽的查询中加入它,并且需要游标或类似模拟标量UDF行为并为每行执行它