在SQL Server中,函数与存储过程的区别

14 浏览
0 Comments

在SQL Server中,函数与存储过程的区别

什么时候应该在SQL中使用函数而不是存储过程,反之亦然?它们各自的目的是什么?

admin 更改状态以发布 2023年5月23日
0
0 Comments

以下是总结差异的表格:

存储过程 函数
返回值 零个或多个值 单个值(可以是标量或表格)
是否可以使用事务?
是否可以输出参数?
是否可以相互调用? 可以调用函数 不能调用存储过程
可在SELECT、WHERE和HAVING语句中使用吗?
是否支持异常处理(通过try/catch)?
0
0 Comments

函数是计算出的值,不能对SQL Server进行永久的环境更改(即不允许使用INSERT或UPDATE语句)。\n\n如果函数返回标量值,它可以在SQL语句中内联使用,如果它返回结果集,则可以连接使用。\n\n值得注意的一点是:函数遵循计算机科学的定义,必须返回一个值,并且不能更改它们作为参数接收的数据(即参数)。函数不允许更改任何内容,必须至少有一个参数,并且必须返回一个值。存储过程不需要参数,可以更改数据库对象,并且不必返回值。感谢@Sean K Anderson提供的回答总结。

0