【发布时间】:2017-01-06 05:45:32
【问题描述】:
请不要指定存储过程和函数之间的区别。只想知道函数比存储过程有优势的原因。
我的理解是存储过程比函数运行得更快,它可以做函数可以做的所有事情,为什么我们需要函数?
我读过一些文章,其中指出它可以轻松嵌入到 select 语句中,但也可以在存储过程中完成(通过在存储过程中编写整个 select 语句)。
【问题讨论】:
-
使用函数最常见的情况是,如果您需要在
select语句中进行一些“处理”...这里不能使用sprocs -
简单,主要原因之一是不能在select column语句中调用存储过程的结果集。
-
像
GETDATE这样的函数调用甚至可以用在SQL Server 的计算列的定义中或作为默认值。在这种情况下,根本不可能使用存储过程。 -
一个过程不能返回一个标量值,例如
where some_column = some_function(other_column) -
“我的理解是存储过程比函数运行得更快”——这种理解是错误的。
标签: sql-server stored-procedures