您的位置:首页 > 数据库

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

2016-11-03 17:30 429 查看
[align=left][/align]
八、自定义函数

  函数的分类:

  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,存储过程一般用在实现复杂的功能,数据操纵方面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: