摘要:
用户自定义函数可以同db内置函数一样,具有相同的功能,可以返回标量值和返回表值,
下文将着重讲述两种自定义的写法和用法。
sql自定义函数注意事项:
函数中含有的 SELECT 语句无法向客户端返回数据。
函数中最后一条语句必须是返回语句。
————————————-
自定义函数分类:
1 标量函数:返回一个标量值
2 表值函数:返回一个表格函数(行集数据)
————————————
标志函数和标量函数的区别在于,
一个是返回单个值,
一个是返回数据表多行集合数据。
————————————
一、标量函数
标量函数的语法简介:
create function 函数名(函数参数)
return 返回数据类型
[with encryption]
as
begin
sql语句
(函数结尾必须有return 返回值)
end
———————————–
例:
/*创建标量自定义函数*/ create function fn_test (@a varchar(10)) returns varchar(20) as begin declare @b varchar(100) set @b =@a+'测试自定义函数' return @b end go /*执行自定义函数*/ select dbo.fn_test('maomao365.com') go /*删除自定义函数*/ drop function fn_test
二、表量函数
表量函数语法如下:
create function 函数名(函数参数)
return 临时表变量 table(表结构)
[with encryption]
as
begin
sql语句 –生成表变量数据
return;
end
————————————
例:
/*创建表值自定义函数*/ create function fn_test (@a varchar(60)) returns @t table(name varchar(60)) as begin insert into @t(name)values(@a) return end go /*执行自定义函数*/ select * from dbo.fn_test('maomao365.com') go /*删除自定义函数*/ drop function fn_test