自定义函数:
1.函数类型;
2.函数的参数和返回值;
1.函数类型:
标量值函数,返回的是一个标量值
表值函数:
内联表值函数;
多语句表值函数。
标量值函数:
eg1:创建一个统计某雇员订单总数的函数 create function SumOrders(@职工号 varchar(20))--指定参数名,和返回类型 returns int--指定返回类型 begin declare @订单总数 int select @订单总数=count(订单.订单号) from 订单 join 职工 on 订单.职工号=职工.职工号 where 职工.职工号=@职工号 return @订单总数 end select dbo.SumOrders('E4')
eg2:创建内联表值函数
create function SelectOrdersByTime(@起始时间 datetime,@终止时间 datetime) returns table return select * from 订单 where 订单日期 between @起始时间 and @终止时间 select * from SelectOrdersByTime('2003-01-01','2003-07-01')eg3:创建多语句表值函数
create function MingDan()--无参函数 returns @名单 table ( 编号 int identity(1,1) not null,姓名 nvarchar(10) not null ) begin insert @名单 select 供应商编号,姓名 from 供应商 insert @名单 select 职工编号,姓名 from 职工 return end select * from MingDan()eg4:自定义函数生成默认值:
create function Default_Num() returns varchar(7) begin declare @编号 varchar(7) declare @id int select top 1 @编号=编号 from test order by 编号 desc if @@rowcount=0 set @编号='TCP_001' else begin set @id=cast(substring(@编号,5,3) as int) + 1 set @编号='TCP_' + replicate('0',3-len(@id)) + cast(@id as varchar(3)) end return @编号 end select dbo.Default_Num() create table test ( id int identity(1,1) not null primary key,编号 varchar(7) default dbo.Default_Num(),名称 varchar(3) ) insert test(名称) values('001')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。