一、定义函数
1. 标量值函数:
返回一个确定类型的标量值,例如:int,char,bit等
--创建标量值函数 create function func_1(@func_parameter_1 int,@func_parameter_2 int) returns int as begin return 1 end
2. 内联表值函数
内联表值函数和多语句表值函数,都叫做表值函数,只是在定义返回值时,多语句确定了返回表的字段
--内联表值函数 create function func_2 (@parameter_id varchar(36)) returns table as return (select * from Member where ID = @parameter_id)
3. 多语句表值函数
--多语句表值函数 create function func_3(@parameter_id varchar(36)) returns @tab_1 table( ID varchar(36), Name varchar(10) ) as begin insert into @tab_1(ID,Name) select ID,Name from Member where ID = @parameter_id return end
二、调用
1. 标量函数
以上述func_1为例,在存储过程中调用函数给变量赋值,需要带上“dbo.” 看看是那个数据库的
-- 直接打印结果 print dbo.func_1(1,2); -- 赋值给变量 declare @params varchar(100) select @params = dbo.func_1(1,2); print @params
2. 表值函数
以上述func_3为例,也可以用insert into ……select 赋值给表变量或临时表等
-- 直接答应结果 select * from func_3('parameter_varchar'); -- 赋值给变量 declare @params varchar(100) select @params = Name from func_3('parameter_varchar'); print @params