SQLSERVER存储过程基本语法(下)

八、自定义函数
  函数的分类:
  1)标量值函数
  2)表值函数 a:内联表值函数;b:多语句表值函数
  3)系统函数

--新建标量值函数
create function FUNC_Sum1
(
     @a int ,
     @b int
)
returns int
as
begin
     return @a +@b
end

--新建内联表值函数
create function FUNC_UserTab_1
(
     @myId int
)
returns table
as
return ( select * from ST_User where ID< @myId)

--新建多语句表值函数
create function FUNC_UserTab_2
(
     @myId int
)
returns @t table
(
     [ID] [ int ] NOT NULL ,
     [Oid] [ int ] NOT NULL ,
     [Login] [nvarchar] (50) NOT NULL ,
     [Rtx] [nvarchar] (4) NOT NULL ,
     [ Name ] [nvarchar] (5) NOT NULL ,
     [ Password ] [nvarchar] ( max ) NULL ,
     [State] [nvarchar] (8) NOT NULL
)
as
begin
     insert into @t select * from ST_User where ID< @myId
     return
end

--调用表值函数
select * from dbo.FUNC_UserTab_1 (15)
--调用标量值函数
declare @s int
set @s =dbo. FUNC_Sum1(100 ,50)
print @s  
--删除标量值函数
drop function FUNC_Sum1

自定义函数与存储过程的区别:
一、自定义函数:
1.可以返回表变量
2.限制颇多,包括
    不能使用output参数;
    不能用临时表;
    函数内部的操作不能影响到外部环境;
    不能通过select返回结果集;
    不能update,delete,数据库表;
3.必须return一个标量值或表变量,自定义函数一般用在复用度高,功能简单单一,争对性强的地方。

二、存储过程
1.不能返回表变量
2.限制少,可以执行对数据库表的操作,可以返回数据集
3.可以return一个标量值,也可以省略return,存储过程一般用在实现复杂的功能,数据操纵方面。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值