存储过程和函数的区别

---------------------------------------------------存储过程--------------------------------------

--1、存储过程定义中的参数可以为任意数据类型,包括用户定义的类型,同时过程还可以拥有输出参数,用于返回任何数据类型的结果。

--2、存储过程只能直接返回整型值,通常用于显示过程执行的状态。

--3、在存储过程定义中可以包含任何T-SQL语句,可以向用户返回查询的结果集,允许递归(最大32层),可以创建/引用临时表。

--4、存储过程的参数有默认值时,只要在调用存储过程时不指定该参数的值或将DEFAULT关键字指定为该参数的值,即可使用默认值。

--5、存储过程不能用于表达式、计算列、DEFAULT约束和CHECK约束中。

--6、系统内置的存储过程有以下特点:其名称以sp_开头,存储在MASTER数据库中。并且符合以上条件的用户定义存储过程可以在任何数据库下,不需要提供四部分名,即可被调用。

----------------------------------------------------------------------------------------------------------------------

---------------------------------------------------函数---------------------------------------------------

--1、函数定义中的参数不能是timestampcursortable和用户定义的数据类型,且没有输出参数。

--2、函数可以直接返回除LOBcursortabletimestamp外任何数据类型的值。

--3、在函数定义中不能有修改函数外对象的T-SQL语句,不能向用户返回任何结果集,不允许递归,不能创建/引用临时表。

--4、函数的参数有默认值时,在调用函数时必须将DEFAULT关键字指定为该参数的值,才可以使用默认值。

--5、函数可以用于表达式、计算列、DEFAULT约束和CHECK约束中。

--6、系统内置的函数有以下特点:其名称以fn_开头,名称都是小写字母,存储在MASTER数据库中,其所有者为system_function_schema。在调用系统内置的表值函数时,需要加::前缀。需要启用allowupdates服务器选项,才能将用户定义函数的所有者定义为system_function_schema

----------------------------------------------------------------------------------------------------------------------


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值