SQL SERVER 中过程和函数的区别

 

存储过程

函数

存储过程定义中的 参数可以为任意数据类型 ,包括用户定义的类型,同时过程还 可以拥有输出参数 ,用于返回任何数据类型的结果。
存储过程只能直接 返回整型值 ,通常用于显示过程执行的状态。
在存储过程定义中可以 包含任何 T-SQL 语句 可以向用户返回查询的结果集 允许递归 (最大 32 层), 可以创建 / 引用临时表
存储过程的参数有默认值时,只要在调用存储过程时 不指定该参数的值 或将 DEFAULT 关键字指定为该参数的值,即可使用默认值。
存储过程 不能用于表达式 、计算列、 DEFAULT 约束和 CHECK 约束中。
系统内置的存储过程 有以下特点:其 名称以 sp_ 开头 存储在 MASTER 数据库中 。并且符合以上条件的用户定义存储过程可以在任何数据库下,不需要提供四部分名,即可被调用。
函数定义中的 参数不能是   timestamp cursor table 用户定义的数据类型 ,且 没有输出参数
函数可以 直接返回除 LOB cursor table timestamp   外任何数据类型的值
在函数定义中 不能有修改函数外对象的 T-SQL 语句 不能向用户返回任何结果集 不允许递归 不能创建 / 引用临时表
函数的参数有默认值时,在调用函数时必须将 DEFAULT 关键字 指定为该参数的值,才可以使用默认值。
函数可以用于表达式、计算列、 DEFAULT 约束和 CHECK 约束中。
系统内置的函数 有以下特点:其 名称以 fn_ 开头 ,名称都是小写字母, 存储在 MASTER 数据库 中,其所有者为 system_function_schema 。在调用系统内置的表值函数时,需要加 :: 前缀。需要启用 allow updates 服务器选项 ,才能将用户定义函数的所有者定义为   system_function_schema

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值