【问题标题】:Why do we need SQL functions when stored procedures can do all what SQL function does? [duplicate]当存储过程可以完成 SQL 函数所做的所有事情时,为什么我们还需要 SQL 函数? [复制]
【发布时间】: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


【解决方案1】:

函数可以在 SQL 语句中内联使用,而存储过程不能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 2019-09-08
    • 2016-01-25
    • 2011-07-09
    • 2010-10-31
    • 2017-09-04
    相关资源
    最近更新 更多